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 }
在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!