1017. A除以B (20)

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

输入格式:

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

输出格式:

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

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3
 1 #include<stdio.h>
 2 #include<string.h>
 3 char str[1001];  //原字符串
 4 int  beichu[1001];  //被除数
 5 int shang[1001];   //
 6 int main()
 7 {
 8     int chu,temp;   //除数,余数
 9     int len;
10     int i,index=0;
11     scanf("%s%d",str,&chu);
12     len = strlen(str);
13     for( i=0; i<len; i++)
14     {
15         beichu[i] = str[i]-'0';  //把char型转换为int型
16     }
17     temp = 0;  //不要忘记初始化
18     if( len==1 && beichu[0]<chu) //如果被除数只有一位并且小于除数
19     {
20         shang[index++] = 0;
21         temp = beichu[0];
22     }
23     else
24     {
25         for( i=0; i<len; i++)
26         {
27             temp = temp*10 + beichu[i];
28             if( temp-chu>=0)
29             {
30                 shang[index++]=temp/chu;
31                 temp = temp%chu;
32             }
33             else
34             {
35                 if( index==0)
36                     continue;
37                 else
38                     shang[index++] = 0;
39             }
40         }
41     }
42     for( i=0; i<index; i++)
43         printf("%d",shang[i]);
44     printf(" %d",temp);
45     return 0;
46 }
在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
原文地址:https://www.cnblogs.com/yuxiaoba/p/8477177.html