-
题目描述:
-
输入两个不超过整型定义的非负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
#include <iostream>
using namespace std;
int main()
{
unsigned int A,B,sum,digit[1000];
int i=0;
int m;
while (cin>>m>>A>>B)
{
if (m==0)
{
break;
}
i=0;
sum=A+B;
while (sum>=1)
{
digit[i]=sum%m;
sum=sum/m;
i++;
}
for (i=i-1;i>=0;i--)
{
cout<<digit[i];
}
cout<<endl;
}
return 1;
}<pre name="code" class="cpp">/**************************************************************
Problem: 1026
User: Carvin
Language: C++
Result: Accepted
Time:0 ms
Memory:1020 kb
****************************************************************/
#include <stdio.h>
int main()
{
unsigned int a,b,ans[40];
int w,cnt,i;
while(scanf("%d%d%d",&w,&a,&b)!=EOF){
if(w==0) break;
unsigned int c=a+b;
cnt=0;
do{ //辗转相除法。
ans[cnt++]=c%w;
c=c/w;
}while(c!=0);
for(i=cnt-1;i>=0;i--)
printf("%d",ans[i]);
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1026
User: Carvin
Language: C++
Result: Accepted
Time:0 ms
Memory:1020 kb
****************************************************************/