-
题目链接:A除以B (20)
-
题目描述
本题要求计算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 <iostream> #include <algorithm> #include <string> using namespace std; int main() { string a,res; int b; cin>>a>>b; int v,r,t = 0; for(int i=0;i<a.length();i++) { v = t*10+(a[i]-'0'); //部分被除数 r = v/b; //一位商 t = v%b; //部分余数 res.push_back('0'+r); } while(res.length()>0 && res[0]=='0') res.erase(0,1); if(res.length()==0) cout<<0<<" "<<t<<endl; else cout<<res<<" "<<t<<endl; return 0; }
-
说明
- 这个题就是一个大数除法,用string存数字,手动模拟竖式除法过程
PAT乙级 —— 1007 A除以B (20)
最新推荐文章于 2023-12-15 19:07:27 发布