代码实现
#include <stdio.h> int main(){ int a,b,d,sum; int ans[31],num=0; scanf("%d%d%d",&a,&b,&d); sum=a+b; do{ ans[num++]=sum%d; sum/=d; }while(sum!=0); int i=num-1; for(i;i>=0;i--){ printf("%d",ans[i]); } return 0; }
错误记录
#include <stdio.h> #include <math.h> int main(){ int a,b,d,sum; int ans=0,i=0; scanf("%d%d%d",&a,&b,&d); sum=a+b; for(i;sum!=0;i++){ ans+=pow(10,i)*(sum%d); //用整数来表示结果 sum/=d; } printf("%d",ans); return 0; }
想省一个for循环,结果做加法更费空间,并且当数字过大时存在越界
#include <stdio.h> int main(){ int a,b,d,sum; int ans[31],num=0; scanf("%d%d%d",&a,&b,&d); sum=a+b; for(;sum!=0;){ //第一处 ans[++num]=sum%d; sum/=d; } int i=num; for(i;i>0;i--){ printf("%d",ans[i]); } return 0; }
//【第一处】当测试用例为 0 0 8 时会直接跳过,出现错误