首页 > 其他 > 详细

【C】大数的加法

时间:2015-03-13 20:20:39      阅读:281      评论:0      收藏:0      [点我收藏+]

求:S = a + aa + aaa + aaaa + aaaaa + ... + aaaaaaaaaa;  最后一个为n个a,其中a 是一个数字。例如:

 2+22+222+2222+22222 (n = 5)

 1 #include <stdio.h>
 2 
 3 int * sum( int buffer[], int x, unsigned n)/*buffer用来存放n个x,所以buffer的最小size为n*/
 4 {
 5     int  i;
 6     //初始化
 7     for(i=0;i<n;i++)
 8     {
 9         buffer[i] = x;
10     }
11     //不进位,求和
12     for(i=0;i<n;i++)
13     {
14         buffer[i] = buffer[i]* (i+1);
15     }
16     //进位
17     for(i=n-1;i>0;--i)
18     {
19         int temp;
20         temp = buffer[i]/10;
21         buffer[i] = buffer[i] % 10;
22         buffer[i-1] += temp;
23     }
24     buffer[i] = buffer[i]%10;
25     return buffer;
26 }
27 
28 int main()
29 {
30     int s[18];
31     sum(s, 3,17);
32     int i;
33     for(i=0;i<17;i++)
34         printf("%d",s[i]);
35     //free(s);
36     return 0;
37 }

 

【C】大数的加法

原文:http://www.cnblogs.com/yongjiuzhizhen/p/4335752.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!