本題要求計算A/B,其中A是不超過1000位的正整數,B是1位正整數。你需要輸出商數Q和余數R,使得A = B * Q + R成立。
輸入格式:
輸入在1行中依次給出A和B,中間以1空格分隔。
輸出格式:
在1行中依次輸出Q和R,中間以1空格分隔。
輸入樣例:
123456789050987654321 7
輸出樣例:
17636684150141093474 3
這道題找了老半天的錯,在本機調試多個答案都正確,但提交后卻都不對,最后發現是temp沒有賦初值0。以后得多加注意
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 int main(){ 6 char a[2000]; 7 scanf("%s",a); 8 int b; 9 scanf("%d",&b); 10 int n = strlen(a); 11 int temp=0; 12 int flag = 0; 13 for(int i=0;i<n;i++){ 14 temp = (a[i]-'0')+temp*10; 15 if(temp>=b){ 16 printf("%d",temp/b); 17 flag = 1; 18 } 19 else if(flag){ 20 printf("0"); 21 } 22 temp = temp%b; 23 } 24 if(flag==0) 25 printf("0"); 26 printf(" %d",temp); 27 }
