HDU 1877 另一个版本 A+B

时间:2021-03-11 15:14:24

另一个版本 A+B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 12894    Accepted Submission(s): 4901

Problem Description
输入两个不超过整型定义的非负10进制整数A和B(<=231-1)。输出A+B的m (1 < m <10)进制数。
 
Input
输入格式:測试输入包括若干測试用例。

每一个測试用例占一行。给出m和A,B的值。

当m为0时输入结束。

 
Output
输出格式:每一个測试用例的输出占一行,输出A+B的m进制数。
 
Sample Input
8 1300 48
2 1 7
0
 
Sample Output
2504
1000
 

注意:须要注意的是A+B之后的值有可能超过int的范围。所以要用long long型;还要考虑当和为0是的情况,要输出0(题意为非负,那么就包含0)

#include<iostream>
using namespace std;
int a[100];
int main()
{
long long A,B;
int m;
while(scanf("%d",&m),m)
{
int sum,i=0,j;
scanf("%I64d%I64d",&A,&B);
sum=A+B;
if(sum==0) {printf("0\n");continue;}
while(sum)
{
a[i++]=sum%m;
sum=sum/m;
}
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
}
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。