PAT(B)1017. A除以B (20)
2016-08-17 12:43
211 查看
题目链接
题目描述:
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
求解这题主要就是模拟笔算除法的过程,但是要注意某些特殊情况的输出。被除数小于除数时要输出商为零。如7 9 应输出 0 7。
代码如下:
题目描述:
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
求解这题主要就是模拟笔算除法的过程,但是要注意某些特殊情况的输出。被除数小于除数时要输出商为零。如7 9 应输出 0 7。
代码如下:
#include <iostream> using namespace std; int main() { char a[1000]; int b[1000]; int e[1000]; int c; int yu; int i=0; while((a[i]=getchar())!=' ') { e[i]=a[i]-'0'; i++; } cin>>c; for (int j = 0;j < i;j++) { b[j] = e[j] / c;yu = e[j] % c;e[j+1] = yu * 10 + e[j+1]; } if ((e[0] >= c)||(e[0]<c&&i==1))cout << b[0];//此处要考虑被除数大于除数的情况 for (int j = 1;j < i;j++) cout << b[j]; cout << " " << yu; return 0; }
相关文章推荐
- 浙江大学PAT乙级试题.1017. A除以B (20)C语言
- 编程题目: PAT 1017. A除以B (20)
- PAT(basic level) 1017 A除以B(20)
- PAT 乙级 1017 A除以B (20)
- 1017. A除以B (20)-PAT乙级真题
- PAT 1017. A除以B (20)
- PAT (Basic Level) Practise (中文)1017. A除以B (20) C语言
- PAT乙级—1017. A除以B (20)-native
- PAT乙级1017. A除以B (20)&&1022. D进制的A+B (20)
- PAT乙级 1017. A除以B (20)--模拟大数除法
- PAT --- 1017. A除以B (20)
- PAT 乙级 1017. A除以B (20)
- 浙江大学PAT_乙级_1017. A除以B (20)
- PAT-B 1017. A除以B (20)
- PAT乙级1017. A除以B (20)
- PAT1017 BASIC:A除以B (20)
- PAT乙级 1017. A除以B (20)
- PAT 1017. A除以B (20)
- 1017. A除以B (20)--PAT乙级
- 1017. A除以B (20)--PAT乙级