题目描述
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入描述:
输入在1行中依次给出A和B,中间以1空格分隔。
输出描述:
在1行中依次输出Q和R,中间以1空格分隔。
输入例子:
123456789050987654321 7
输出例子:
17636684150141093474 3
题解:
模仿数学运算就ok了,注意过程中可能会出现的情况,做条件判断就可以达到想要的答案了。
原创代码:
#include<stdio.h>
#include<string.h>
char ch[1005];
int ans[1005];
int main()
{
int len,i=0,n,sum=0,t=0;
char c;
scanf("%s %c",ch,&c);//注意输入格式,没空格的话,c就是空格了
n=c-'0';
len=strlen(ch);
while(i<len)
{
sum*=10;
sum+=ch[i]-'0';
if(sum<n)
{
if(i!=0)
ans[t++]=0;
if(i+1==len)
break;
sum*=10;
sum+=ch[++i]-'0';//取下一位,使sum大于n
}
ans[t++]=sum/n;
sum%=n;//此时sum 为余数
i++;
}
for(i=0;i<t;i++)
printf("%d",ans[i]);
printf(" %d\n",sum);
return 0;
}