概述
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
思路:按照除法法则处理即可,需要注意的是商首位为0不打印,但如果只有一位商,为0仍然要打印
#include <iostream>
#include <stdio.h>
#include <string.h>
int main( )
{
char Anum[1005];
int B,i,x=0,y;
scanf("%s%d",Anum,&B);
int len=strlen(Anum);
for(i=0;i<len;i++)
{
y=(x*10+Anum[i]-'0')/B;//高位余数与本位和,除以B 即商
if(i==0)//需要判断商首位是否可以打印
{
if(y)//商首位大于0,打印
printf("%d",y);
else if(len==1)//商首位为0,但只有一位数,还是要打印
printf("%d",y);
}
else
printf("%d",y);
x=(x*10+Anum[i]-'0')%B;//求余
}
printf(" %d",x);//最后一位余数,打印
return 0;
}
最后
以上就是魁梧铅笔为你收集整理的C程序-PAT-1017 A除以B的全部内容,希望文章能够帮你解决C程序-PAT-1017 A除以B所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复