PTA–1017 A除以B (20分)
题目:
本题要求计算A/B,其中A是不超过1000位的正整数,B是一位正整数.你需要输出商数Q和余数R,使得 A = B × Q + R A = B \times Q + R A=B×Q+R成立
输入格式:
输入在一行中依次给出 A 和 B,其间以一个空格分隔。
输出格式:
在一行中依次输出Q和R,中间以一个空格分隔
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
题目分析:
- 用字符串函数获取输入数字的长度
- z和y分别为每位数字除以除数的商(/)和模(%)
- 接着对每位循环操作
- 每次输出商
特别注意,当A < B时直接输出A
代码如下:
#include<stdio.h>
#include<string.h>
int main(){
char a[1001];
int n,z,y,l;
scanf("%s %d",a,&n);
l=strlen(a);
z=(a[0]-'0')/n;
y=(a[0]-'0')%n;
if(l==1) printf("%d",z);
else{
if(z!=0)
printf("%d",z);
for(int i=1;i<l;i++)
{
z=(a[i]-'0'+y*10)/n;
y=(a[i]-'0'+y*10)%n;
printf("%d",z);
}
}
printf(" %d",y);
return 0;
}