A除以B (20)

 

时间限制 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<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
char s[1010];
int A[1010],B[1010],a,b,len,g; 
int main(void){
    scanf("%s%d",s,&a);
    len = strlen(s);
    for(int i=0;i<len;i++){
        A[i+1] = s[i] - 48;
    }
    for(int i=1;i<=len;i++){
        B[i] = (A[i] + g*10)/a;
        g = (A[i] + g*10)%a; 
    }
    b = g;
    int first = 1 , i = 1;
    while(B[i] == 0 && i!=len) i++;
    for(;i<=len;i++)
    printf("%d",B[i]);
    printf(" %d",b);
    return 0;
}
原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8506178.html