原题链接:http://pat.zju.edu.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
#include <stdio.h> #include <cstring> const int MAX_LEN = 10001; int main() { char input[MAX_LEN]; char Q[MAX_LEN]; int R, q_len; int b; while(scanf("%s %d", input, &b)!=EOF) { int len = strlen(input); int i = 0; int m = 0; q_len = 0; while(i < len) { m +=(input[i] - '0'); if(m>=b) { Q[q_len++] = (m/b+'0'); m = m%b; } else if(q_len>0){ Q[q_len++] = '0'; } R =m; m *= 10; i++; } if(q_len == 0){ Q[q_len++] = '0'; } Q[q_len] = '\0'; printf("%s %d\n", Q, R); } return 0; }