乐逍遥xwl

导航

1017 A除以B

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

输入格式:

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

输出格式:

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

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

思路:这题主要考察大数除法......

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<stdlib.h>
 5 int main()
 6 {
 7     char num[1000];
 8     int a;
 9     scanf("%s %d",num,&a);
10     int flag=0,temp=0;//flag标记(第一位),temp存余数
11     int len=strlen(num);
12     for(int i=0;i<len;i++)
13     {
14         temp=temp*10+(num[i]-'0');//刷新除数 
15         if(temp>=a)//能除 
16         {
17             printf("%d",temp/a);
18             flag=1;
19         }
20         else if(temp<a&&flag==1)//不能除 
21         {
22             printf("0");
23          } 
24          temp=temp%a;//刷新余数 
25      } 
26      if(temp<a&&flag==0)//只有一位且不能除
27      printf("0");
28      printf(" %d",temp);//输出余数
29     return 0; 
30  } 

 

 

posted on 2019-01-03 13:39  乐逍遥xwl  阅读(159)  评论(0编辑  收藏  举报