本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
分析:
由于A的数很大,所以要用一个字符串接受, 然后写一个除法
#include <iostream>
#include <cstring>using namespace std;int main(void) {char a[1005],b[1005];int n;cin >> a >> n;int j = 0;int p = 1,num=0;int yushu=0;for(int i=0; i < strlen(a); i++) {num = num + (a[i]-'0');if( num / n != 0 ) {b[j++] = ((num) / n) + '0';yushu = ((num) % n);num = yushu * 10;}else {num = num * 10;if(strlen(a) == 1) b[j++] = '0';if ((a[i]-'0') / n == 0) {if (i!=0 && i != strlen(a) - 1) b[j++] = '0';if (i!=0 && i == strlen(a) - 1) b[j++] = '0';}if(i == strlen(a) - 1) {yushu = num /10;break;}}}for(int i = 0 ;i <j ; i++) {cout << b[i]; } cout << " " ;cout << yushu;return 0;
}