输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
Input
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
当m为0时输入结束。
Output
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
Sample Input
8 1300 48 2 1 7 0
Sample Output
25041000
<pre name="code" class="cpp">#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <ctype.h> void two_sixth(long long int N,int aim)//N是要转换的十进制数,aim是要转换的进制数 { long long int i; char s[35]; for(i=0;i<34;i++) s[i]='0'; for(i=33;i>=0;i--) { while(N>=pow(aim,i)) { if(s[i]<'9') s[i]=s[i]+'1'-'0'; else if(s[i]=='9') s[i]='A'; else if(s[i]=='A') s[i]='B'; else if(s[i]=='B') s[i]='C'; else if(s[i]=='C') s[i]='D'; else if(s[i]=='D') s[i]='E'; else if(s[i]=='E') s[i]='F'; N-=pow(aim,i); } } for(i=33;i>=0;i--) { if(s[i]!='0') break; } if(i<0) printf("0\n"); else { for(;i>=0;i--) printf("%c",s[i]); printf("\n"); } } int main() { long long int a,b,sum; int m; while(scanf("%d",&m)!=EOF) { if(m==0) break; scanf("%I64d %I64d",&a,&b); sum=a+b; two_sixth(sum,m); } return 0; }