题目1026:又一版 A+B
时间限制: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 48
2 1 7
0
样例输出:
2504
1000
来源:
//他们说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
****************************************************************/