B1022

    技术2023-07-29  112

    D进制的A+B (20分)

    总结:

    除基(转换成的进制)取余,结果存放数组,输入顺序为低位→高位。存放数组范围:A、B范围→A+B<2^31, 进制最小为2,最多31位。特殊情况:A+B=0。①直接输出0。  ②do...while...循环,先进行一次运算。

    代码:

    #include <cstdio> int main(){ int a,b,d; scanf("%d %d %d", &a, &b, &d); int r[31]; //至少31位 sum小于2^31 int sum = a+b,count=0; //do while或者if判断特殊情况0 /* if(sum==0) { printf("0"); return 0; } */ do{ r[count++] = sum%d ; sum /= d; }while(sum); for(int i=count-1; i>=0; i--) printf("%d", r[i]); return 0; }

     

    Processed: 0.009, SQL: 9