本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
123456789050987654321 7
17636684150141093474 3
- #include <stdio.h>
- #define MAXN 1024
-
- int main()
- {
- int A[MAXN], Q[MAXN];
- int B, R=0, i=0, j;
- char c;
-
- do {
- if ( scanf("%c", &c)==EOF ) printf("error\n");
- if ( c!=32 ) A[i++] = c - 48;
- } while ( c!=32 );
- if ( scanf("%d", &B)==EOF ) printf("error\n");
-
- for ( j=0; j<i; j++ ) {
- Q[j] = ( A[j] + 10*R )/B;
- R = ( A[j] + 10*R )%B;
- }
-
- if ( i<=1 && A[0]<B ) {
- printf("%d %d", Q[0], R);
- } else {
- if ( Q[0]!=0 ) printf("%d", Q[0]);
- for ( j=1; j<i; j++ ) {
- printf("%d", Q[j]);
- }
- printf(" %d", R);
- }
-
- return 0;
- }