复试训练——数学问题—— 进制转换
2017-02-02 00:00
246 查看
题目1026:又一版 A+B
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:14390
解决:3895
题目描述:
输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
输入:
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
输出:
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
样例输入:
样例输出:
来源:
2008年浙江大学计算机及软件工程研究生机试真题
代码:
题目1118:数制转换
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:5217
解决:2063
题目描述:
求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
输入:
输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。
数据可能存在包含前导零的情况。
输出:
可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
样例输入:
样例输出:
提示:
可以用字符串表示不同进制的整数。
来源:
2008年北京大学图形实验室计算机研究生机试真题
代码:
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:14390
解决:3895
题目描述:
输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
输入:
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
输出:
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
样例输入:
8 1300 48 2 1 7 0
样例输出:
2504 1000
来源:
2008年浙江大学计算机及软件工程研究生机试真题
代码:
#include <stdio.h> int main(){ long long a,b; int m; while(scanf("%d",&m)!=EOF){ if(m==0) break; scanf("%lld%lld",&a,&b); a=a+b; int ans[50],size=0; do{ ans[size++]=a%m; a/=m; }while(a!=0); int i; for(i=size-1;i>=0;i--){ printf("%d",ans[i]); } printf("\n"); } return 0; }
题目1118:数制转换
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:5217
解决:2063
题目描述:
求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
输入:
输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。
数据可能存在包含前导零的情况。
输出:
可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
样例输入:
15 Aab3 7
样例输出:
210306
提示:
可以用字符串表示不同进制的整数。
来源:
2008年北京大学图形实验室计算机研究生机试真题
代码:
#include <stdio.h> #include <string.h> int main(){ int a,b; char str[40]; while(scanf("%d%s%d",&a,str,&b)!=EOF){ int tmp=0,lenth=strlen(str),c=1; int i; for(i=lenth-1;i>=0;i--){ int x; if(str[i]>='0'&&str[i]<='9'){ x=str[i]-'0'; }else if(str[i]>='a'&&str[i]<='z'){ x=str[i]-'a'+10; }else{ x=str[i]-'A'+10; } tmp+=x*c; c*=a; } char ans[40],size=0; do{ int x=tmp%b; ans[size++]=(x<10) ? x+'0':x-10+'A'; tmp/=b; }while(tmp); for(i=size-1;i>=0;i--){ printf("%c",ans[i]); } printf("\n"); } return 0; }
相关文章推荐
- 复试训练——数学问题—— 二分求幂
- 复试训练——数学问题—— 素数筛选法
- 复试训练——数学问题—— 分解素因数
- 复试训练——数学问题——%运算符
- 复试训练——数学问题—— 最大公约数(GCD)
- 复试训练——数学问题—— 高精度整数
- 复试训练——数学问题——数位拆除
- 复试训练——数学问题—— 最小公倍数(LCM)
- ACM内部函数--数学问题--任意进制转换
- 复试训练——查找问题
- hdu 4937 Lucky Number(数学题 进制转换)2014多校训练第7场
- 复试训练——排版问题
- 复试训练——排序问题
- 复试训练——动态规划——动态规划问题分析举例
- 复试训练——日期类问题
- 数学—士兵队列训练问题
- 复试训练——Hash问题
- Java解决数学建模之席位分配问题
- 数学之美 系列十七 闪光的不一定是金子 谈谈搜索引擎作弊问题
- 数学问题:正态分布