时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:3941
解决:1029
- 题目描述:
输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
- 输入:
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
- 输出:
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
- 样例输入:
8 1300 482 1 70
- 样例输出:
25041000
- 来源:
- 2008年浙江大学计算机及软件工程研究生机试真题
//他们说hoj上可以AC的代码,在jobdu不能AC,看来有的编译器不支持unsigned long和unsigned long int类型而支持unsigned int,这个题把unsigned int 改成我说的那两种就WA了。有懂的求赐教!
#include<iostream>using std::cin;using std::cout;using std::endl; int main(){ int m, a, b; while(cin >> m, m) { cin >> a >> b; unsigned int c = a + b; if(c == 0) { cout << 0 << endl; continue; } int aa[50], i = 0; while(c) { aa[i++] = c % m; c /= m; } for(int j = i - 1; j >= 0; j--) cout << aa[j]; cout << endl; } return 0;} /************************************************************** Problem: 1026 User: true14fans Language: C++ Result: Accepted Time:0 ms Memory:1520 kb****************************************************************/
#include<iostream>using std::cin;using std::cout;using std::endl;void convertToMJz(unsigned int x, const int xx){ if(x == 0) { cout << 0 << endl; return; } int aa[50], i = 0; while(x) { aa[i++] = x % xx; x /= xx; } for(int j = i - 1; j >= 0; j--) cout << aa[j]; cout << endl;} int main(){ int m; int a, b; while(cin >> m, m) { cin >> a >> b; unsigned int c = a + b; convertToMJz(c, m); } return 0;} /************************************************************** Problem: 1026 User: true14fans Language: C++ Result: Accepted Time:0 ms Memory:1520 kb****************************************************************/