码迷,mamicode.com
首页 > 其他好文 > 详细

九度oj 题目1051:数字阶梯求和

时间:2016-07-21 19:42:28      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:

给定a和n,计算a+aa+aaa+a...a(n个a)的和。

输入:

测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。

输出:

对于每组输入,请输出结果。

样例输入:
1 10
样例输出:
1234567900

这道题的难点在于处理很长很长的数的求和
 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <cstring>
 4 #include <string>
 5 #include <cmath>
 6 #define MAX 302
 7 
 8 int sum[MAX];
 9 int temp[MAX];
10 
11 void calSum() {
12     int ci = 0;
13    for(int i = 0; i < MAX;i++) {
14         int ben = (sum[i] + temp[i] + ci) % 10;
15         ci = (sum[i] + temp[i] + ci)/10;
16         sum[i] = ben;
17    } 
18 }
19 int main(int argc, char const *argv[])
20 {
21     int a, n;
22     while(scanf("%d %d",&a,&n) != EOF) {
23         for(int i = 0; i < MAX; i++) {
24             sum[i] = 0;
25         }
26         for(int i = 1; i <= n; i++) {
27             for(int j = 0; j < MAX; j++) {
28                 temp[j] = 0;
29             }
30             for(int j = 0; j < i; j++) {
31                 temp[j] = a;
32             }
33             calSum();
34         }
35         bool isBegin = false;
36         for(int i = MAX; i >= 0; i--) {
37             if(isBegin == false && sum[i] != 0) {
38                 isBegin = true;
39                 printf("%d",sum[i]);
40             }
41             else if(isBegin) {
42                 printf("%d",sum[i]);
43             }
44         }
45         printf("\n");
46     }
47     return 0;
48 }

 



九度oj 题目1051:数字阶梯求和

标签:

原文地址:http://www.cnblogs.com/jasonJie/p/5692584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!