PTA(Basic Level) 1017:A除以B(C语言实现)

╰+哭是因爲堅強的太久メ 2023-07-19 10:54 35阅读 0赞

PTA(Basic Level) 1017:A除以B(C语言实现)

分析:
①手动模拟除法过程,够除输出商,不够除商0,并将余数*10和下一个数相加,循环上面过程;
②注意第一位特殊处理,第一位如果比除数大,不管有没有下一位,都要输出商;如果第一位小于除数,商为0,如果还有下一位则不输出0,否则输出0。

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. int i,n,B,R,Q;
  6. char A[1001]={ 0};
  7. scanf("%s%d",A,&B);
  8. n=strlen(A);
  9. Q=(A[0]-'0')/B;//商
  10. R=(A[0]-'0')%B;//余数
  11. if(Q!=0 || n==1)//只有一位或者第一位大于除数
  12. printf("%d",Q);
  13. for(i=1; i<n; i++)
  14. {
  15. Q=(R*10+A[i]-'0')/B;//商
  16. R=(R*10+A[i]-'0')%B;//余数
  17. printf("%d",Q);
  18. }
  19. printf(" %d",R);
  20. return 0;
  21. }

发表评论

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

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

相关阅读

    相关 1017 A除以B (20 分)

    本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。 输入格式: 输入在一行

    相关 1017. A除以B (20)

    本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B \ Q + R成立。 输入格式: 输入在1行中依次给出A和B