思路:辗转相除法。两个注意点:1.A,B范围没超int型(<=2^31-1),但是加起来可能会超,用long long型(<=2^63-1)。2.用do while,因为可能一上来就是0。
#include<stdio.h>
int main(){
long long A,B;
int D,i=0;
int a[100];
scanf("%lld%lld%d",&A,&B,&D);
A=A+B;
do{
a[i++]=A%D;
A=A/D;
}
while(A!=0);
for(i=i-1;i>=0;i--){
printf("%d",a[i]);
}
return 0;
}
二刷代码:
#include<stdio.h>
int main(){
long long A,B;
int D,a[100],i = 0;
scanf("%lld%lld%d",&A,&B,&D);
A = A+B;
do{
a[i++] = A%D;
A /= D;
}
while(A != 0);
for(i--;i >= 0;i--){
printf("%d",a[i]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。