美文网首页PAT
1017.A除以B

1017.A除以B

作者: yzbkaka | 来源:发表于2018-07-26 17:50 被阅读1次

题目描述

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

输入描述

输入在1行中依次给出A和B,中间以1空格分隔。

输出描述

在1行中依次输出Q和R,中间以1空格分隔。

输入例子

123456789050987654321 7

输出例子

17636684150141093474 3

代码

#include <stdio.h>
int main(){
   char a1[1001],a2[1001];   //因为可能有1000个数字,所以使用字符串
   int b,r=0,i,c,j=0;
   scanf("%s %d",a1,&b);
   for(i=0;a1[i]!='\0';i++){   //开始模拟笔算
      c=r*10;
      a2[j]=((a1[i]-48+c)/b)+48;   //将每一位的商数都记住
      r=(a1[i]-48+c)%b;
      j++;     //下表要增加
   }
   a2[j]='\0';
    if(a2[0]=='0'){   //如果商数的第一位是‘0’
        if(j==1){   //如果给出的数字是只有1位数
            printf("%c %d",a2[0],r);
           }
        else{
            printf("%s %d",a2+1,r);   //如果给出的不止一位数
           }
       }
       else{    //如果商数的第一位不是‘0’
        printf("%s %d",a2,r);
       }
   return 0;
}

我的分析

这道题的题目很短,但是却是很费时间来思考的。一开始看到题时,我以为就是简单的除法运算,考虑到可能给出的数值较大,所以定义时使用的是long long,但是在提交后才发现我是too young too simple,系统给出的最大是有1000个数字的超大的数呀!,所以才发现这道题不能来用整型来计算,要用数组。我写这道题的整体思路是根据在纸上的笔算来进行的,这里可能无法用文字解释清楚,但是如果自己动手笔算再结合着给出的代码,就一定能够理解的

相关文章

  • 1017.A除以B

    题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A ...

  • 除和除以的区别

    a除b是 b除以a 就是b/a; a除以b 是a/b;

  • 1017 A除以B

    本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 ...

  • 小学数学最容易出错的16个小细节

    1.除和除以的区别 a除以b或a被b除,列式为:a÷b a除b或用a去除b,列式为:b÷a 2.半圆的周长≠圆周长...

  • pat考试-A除以B

    题目描述: 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A...

  • 1017A除以B

    问题描述:本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q...

  • PAT-B 1017 A除以B(C语言)

    题目 链接:PAT (Basic Level) Practice 1017 A除以B 本题要求计算 A/B,其中 ...

  • B1017 A除以B (20分)

    /*题意:1、高精度除法A是不超过1000的整数,B是一位数,所以你需要输出商和余数R 解题:1、结构体2、逆着赋...

  • PAT Basic 1017 A除以B

    题目 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和...

  • 1017. A除以B (20)

    描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = ...

网友评论

    本文标题:1017.A除以B

    本文链接:https://www.haomeiwen.com/subject/imapmftx.html