牛客网PAT 30 真题 1007 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<stdio.h>
#include<stdlib.h>
#include<string.h>
//思想是,类似于笔算的除法,每次用前两位数值对B运算
int main()
{
char A[1001]={0,0};
int B;
scanf("%s %d",A,&B);
int temp=(A[0]-'0')*10+(A[1]-'0');//这样有利于对仅有一位的A的处理
printf("%d",temp/B);
for(int i=2;i<strlen(A);i++)
{
temp=(temp%B)*10+A[i]-'0';
printf("%d",temp/B);
}
printf(" %d\n",temp%B);
return 0;
}