编程题目: PAT 1017. A除以B (20)
2014-07-03 21:33
288 查看
1017. A除以B (20)
时间限制100 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
本题由于给的A位数可以很长,所有简单的除法是绝不可行的,可以考虑采用模拟手工除法来解决。要特别注意的一点是,对于A长度为1位,且比B晓得情况的考虑,参考代码如下。
/* http://pat.zju.edu.cn/contests/pat-b-practise/1017 A除以B (20) */ #include<iostream> #include<string> using namespace std; int main() { string A,Q; int B,R=0; cin>>A>>B; int length = A.length(); int temp = A[0]-'0'; if(temp>=B) Q.push_back(temp/B+'0'); for(int i =1;i<length;i++) { R = temp%B; temp = R*10+ A[i]-'0'; Q.push_back(temp/B+'0'); } R = temp%B; if(length ==1 && A[0]-'0'<B)//特别注意,当输入值A只有一位且比B小的情况 cout<<"0 "<<A[0]-'0'; else cout<<Q<<" "<<R; system("pause"); return 0; }
相关文章推荐
- 编程题目: PAT 1017. A除以B (20)
- 【C++】浙大PAT (Basic Level)1017. A除以B (20)
- 编程题目: PAT 1022. D进制的A+B (20)
- 编程题目:PAT 1009. 说反话 (20)
- 编程题目: PAT 1012. 数字分类 (20)
- 编程题目: PAT 1024. 科学计数法 (20)
- 编程题目: PAT 1018. 锤子剪刀布 (20)
- 编程题目: PAT 1014. 福尔摩斯的约会 (20)
- 编程题目:PAT 1008. 数组元素循环右移问题 (20)
- 编程题目:PAT 1008. 数组元素循环右移问题 (20)
- 编程题目: PAT 1013. 数素数 (20)
- PAT Basic Level 1017. A除以B(20)
- 编程题目: PAT 1023. 组个最小数 (20)
- PAT1017 BASIC:A除以B (20)
- 编程题目:PAT 1009. 说反话 (20)
- 编程题目: PAT 1019. 数字黑洞 (20)
- PAT - 1017. A除以B (20)
- 编程题目:PAT 1003. 我要通过!(20)
- 编程题目:PAT 1002. 写出这个数 (20)
- 编程题目: PAT 1013. 数素数 (20)