给定一个大数n,计算从1加到n
测试多组数据
用字符串处理
#include<stdio.h>
#include<memory.h>
#include<string.h>
int main()
{
char a[100],b[100];
int c[100],sum[100];
int i,j,t,k;
while(scanf("%s",a)!=NULL)
{
t=strlen(a);
memset(sum,0,400);
memset(c,0,400);
memset(b,'0',t);
c[0]=1;
while(strcmp(a,b)>=0)
{
j=0;
for(i=t-1;i>=0;i--)
b[j++]=c[i]+48;
for(i=0;i<t;i++)
{
sum[i]+=c[i];
if(sum[i]>=10)
{
sum[i]-=10;
sum[i+1]++;
}
}
c[0]++;
for(i=0;i<t;i++)
{
if(c[i]>=10)
{
c[i]-=10;
c[i+1]++;
}
}
}
k=0;
for(i=99;i>=0;i--)
{
if(k)
printf("%d",sum[i]);
else
if(sum[i])
{
printf("%d",sum[i]);
k=1;
}
}
printf("\n");
}
return 0;
}