您的位置:首页 > 大数据 > 人工智能

10494 If We Were a Child Again

2012-05-22 22:05 399 查看








这道题目的思路就是用数组将除法模拟一下,一次取出各位进行除法,商一次存储在整型数组中,将余数与下一位结合,此处的用的类型为long long int 以免在余数在与下一位结合的时候造成数据的溢出,至于为什么用long long int 可以防止溢出是因为在与下一位结合的时候其最大位数是 int 型最大位数+1,因此用long long int 可以。最后的余数是整体的余数,数组中的数合起来是商。

#include <stdio.h>
#include <string.h>
char s1[1000000];
long long int a[1000000];
int main()
{
int i,j,m;
char c;
long long int s,s2,n;
int l;
int k,flag;
while(scanf("%s %c %lld",s1,&c,&n)!=EOF)
{
l=strlen(s1);
s=0;
k=1;
flag=0;
for(i=0;i<=l-1;i++)
{
s=s*10+(s1[i]-'0');
s2=s/n;
if(s2!=0||(s2==0&&k==0))
{
a[flag]=s2;
flag+=1;
k=0;
}
s=s%n;
}
if(c=='%')
{
printf("%lld\n",s);
}else
{
if(flag==0)
{
printf("0");
}else
{
for(i=0;i<=flag-1;i++)
{
printf("%lld",a[i]);
}
}
printf("\n");
}
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 c