大数相加(1+2+...+N)

来源:互联网 发布:软件系统解决方案ppt 编辑:程序博客网 时间:2024/06/08 15:00

问题描述:

输入一个正整数,输出1加到该数的精确结果。

解题思路:

用数组分别记录每次相加的结果中的每位数字

 

算法缺点:

当输入的正整数比较大时,计算时间会较长

 

<span style="font-family:KaiTi_GB2312;font-size:18px;">#include<stdio.h>#define N 100int main(){int n,i,j,temp,c;int a[100]={0};scanf("%d",&n);for(i=1;i<=n;i++){c=0;temp=i;for(j=0;temp>0;j++){a[j]+=temp%10+c;c=a[j]/10;a[j]=a[j]%10;temp/=10;}if(c>0){a[j]+=c;if(a[j]>9){a[j+1]+=a[j]/10;a[j]=a[j]%10;}}}for(i=N-1;i>=0;i--)if(a[i]!=0)break;for(;i>=0;i--)printf("%d",a[i]);putchar('\n');return 0;}</span>


测试结果:


0 0
原创粉丝点击