PAT (Basic Level) Practise (中文)- 1017. A除以B (20)
http://www.patest.cn/contests/pat-b-practise/1017
本题要求计算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 int main() 3 { 4 char c,str[1100],shang[1100]; //A是不超过1000位的正整数,B是1位正整数 5 int iStr=0,iShang=0,b=1,yushu=0; 6 while((c=getchar())!=' ') 7 { 8 str[iStr]=c; 9 iStr++; 10 } 11 str[iStr]='\0'; 12 scanf("%d",&b); 13 14 iStr=0; 15 while(str[iStr]) //计算A/B 16 { 17 yushu=yushu*10+str[iStr]-'0'; 18 shang[iShang]=yushu/b+'0'; 19 yushu%=b; 20 iShang++,iStr++; 21 } 22 23 iStr=0; 24 while(shang[iStr]=='0')//商的字符串前部的0不输出 25 iStr++; 26 27 if(iStr==iShang) 28 printf("0"); 29 else 30 for(int i=iStr;i<iShang;i++) 31 printf("%c",shang[i]); 32 33 printf(" %d",yushu); //输出商数Q和余数R,使得A = B * Q + R成立 34 return 0; 35 }