PAT 1017 A除以B (20分)
阿新 • • 發佈:2018-12-20
1017 A除以B (20 分)
本題要求計算 A/BA/BA/B,其中 AAA 是不超過 1000 位的正整數,BBB 是 1 位正整數。你需要輸出商數 QQQ 和餘數 RRR,使得 A=B×Q+RA = B \times Q + RA=B×Q+R 成立。
輸入格式:
輸入在一行中依次給出 AAA 和 BBB,中間以 1 空格分隔。
輸出格式:
在一行中依次輸出 QQQ 和 RRR,中間以 1 空格分隔。
輸入樣例:
123456789050987654321 7
輸出樣例:
17636684150141093474 3
不超過1k位的正整數,如果用long long 肯定不夠,所以用字串模擬一下就好了。
#include <bits/stdc++.h> #include <cstdio> #include <stdlib.h> using namespace std; const int maxn = 1e5+10; int main() { string str; int x; cin>>str>>x; int len = str.length(); int num = 0; int res = 0; if(len == 1) { num = str[0]-'0'; cout<<num/x; cout<<" "<<num%x<<endl; return 0; } for(int i=0; i<len; i++) { if(i == 0) { num = str[0]-'0'; if(num > x) //如果首位能被x整除的話 { cout<<num/x; num = num%x; continue; } } else//注意這裡的else一定要加上 { num = num*10 + str[i]-'0'; res = num % x; cout<<num/x; num = res; } } cout<<" "<<num; return 0; }