PAT-B 1022. D进制的A+B (20)

痛定思痛。 2022-03-12 17:48 269阅读 0赞

输入两个非负10进制整数A和B(<=2^30-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103

思路:进制的转化,题目要求是从十进制转化为2进制或者8进制

总体思路: 除商、取余、倒排。

代码:

  1. #include <cstdio>
  2. int main() //实现a+b的d进制转化 除商、取余、倒排
  3. {
  4. int i,a,b,d,sum,num=0; //先统一定义变量,数字a,b,和sum
  5. int str[100]={0}; //定义一个数组进行存储取余后的操作
  6. printf("please input two numbers:");
  7. scanf("%d %d %d",&a,&b,&d); //从用户得到 a b 和进制数
  8. sum=a+b;
  9. do{ //用do while();语句,进行:除商、取余、
  10. str[num++]=sum%d;
  11. sum=sum/d;
  12. }while(sum!=0);
  13. for(i=num-1; i>=0; i--) //用一个for语句进行倒排
  14. {
  15. printf("%d",str[i]);
  16. }
  17. }

结果:

20190306153148107.png

发表评论

表情:
评论列表 (有 0 条评论,269人围观)

还没有评论,来说两句吧...

相关阅读