PAT乙级——1007.A除以B

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

题目描述

本题要求计算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<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
#pragma warning(disable:4996)
int main()
{
    int n, m = 0;
    char str[1000];
    scanf("%s %d", str, &n);
    if (strlen(str) == 1 && str[0] - '0' < n)
    {
        printf("0 %d", str[0] - '0');
    }
    else
    {
        for (int i = 0; i < strlen(str); i++)
        {
            if (i > 0 && m == 0 && str[i] - '0' < n)
            {
                printf("0");
            }
            m = m * 10 + str[i] - '0';
            if (m / n > 0)
            {
                printf("%d", m / n);
                m = m % n;
            }
        }
        printf(" %d\n", m);
    }
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wardseptember/article/details/80355005