PAT (Basic Level) Practice 1017 A除以B

    xiaoxiao2022-07-02  112

     

    本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q和余数 R,使得 A=B×Q+R 成立。

    输入格式:

    输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

    输出格式:

    在一行中依次输出 Q 和 R,中间以 1 空格分隔。

    输入样例:

    123456789050987654321 7

    输出样例:

    17636684150141093474 3 #include<iostream> #include<cstring> //网站测试的编译器的<string.h>是不包括strlen的,要使用<cstring> #include<math.h> #include<stdlib.h> using namespace std; struct bign { int d[1010]; int len; bign()//必须要用构造函数初始化 { memset(d, 0, sizeof(d)); len = 0; } }; bign change(char str[]) { bign a; int lens = strlen(str); for (int i = lens - 1; i >= 0; i--) { a.d[a.len++] = str[i] - '0'; } return a; } int main() { int i; char a[1010]; int b; int r = 0, flag = 0; cin >> a >> b; int n1 = strlen(a); for (i = 0; i < n1; i++) { r = r * 10 + a[i] - '0'; if (r >= b) { cout << r / b; flag = 1; } else if (flag==1) { cout << 0; } r = r%b; } if (flag == 0) cout << 0; cout << " " << r<<endl; return 0; }

     

    最新回复(0)