1017. A除以B (20)(此题转载)

1017. 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 <string>

using namespace std;

int main()
{
    string A;
    int B, R, i, temp = 0, p = 0;
    cin >> A >> B;
    for ( i=0; i<A.length(); i++ )
    {
        temp = temp*10 + A[i] - ‘0‘;//每次用temp除以B,下一循环自动更新temp的值
        if ( temp >= B )//判断是否大于除数B ,成立则输出商的第一位
        {
            cout << temp/B;
            p = 1;//第一位输出后用p标记
        }
        else if (p)
            cout << "0";//第一位输出后且temp<B,则后移一位,商0
        temp %= B;//得到余数
    }
    if ( p == 0 )
        cout << "0";
    cout << " " << temp << endl;

    return 0;
}
时间: 2024-10-29 19:06:25

1017. A除以B (20)(此题转载)的相关文章

PAT乙级 1017. A除以B (20)

1017. A除以B (20) 时间限制 100 ms 内存限制 65536 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 输出样例: 176366

PAT 乙级 1017 A除以B (20) C++版

1017. A除以B (20) 时间限制 100 ms 内存限制 65536 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 输出样例: 176366

Programming Ability Test学习 1017. A除以B (20)

1017. A除以B (20) 时间限制 100 ms 内存限制 65536 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 输出样例: 176366

1017. 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 1 #include <stdio.h> 2 #include <string.h> 3 int main(){ 4

1017. A除以B (20) (数学啊 ZJU_PAT)

题目链接:http://www.patest.cn/contests/pat-b-practise/1017 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3 代码如下: #incl

PAT 1017. 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 这道题找了老半天的错,在本机调试多个答案都正确,但提交后却都不对,最后发现是temp没有赋初值0.以后得多加注意 1 #includ

PAT (Basic Level) Practise:1017. 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 提交代码: 1 #include <stdio.h> 2 #include <string.h> 3 4

PAT:1017. A除以B (20) AC

#include<stdio.h> #include<string.h> char n[1010]; //暂存输入的大整数字符串 int num[1010]; //暂存可以运算的各位数字 int cnt=0; //记录数字个数 int chu; //除数 int main() { scanf("%s %d",n,&chu); cnt=strlen(n); int yushu=0; //本位不够除的时候,后位想此位借位 for(int i=0 ; i<

B.1017 A除以B (20)

#include<stdio.h> #include<string.h> struct bign { int d[1010], len; bign() { memset(d, 0, sizeof(d)); len = 0; } }; bign change(char str[]) { bign a; a.len = strlen(str); for (int i = 0; i < a.len; i++) { a.d[i] = str[a.len - i - 1] - '0';