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

求S=a+aa+aaa+aaaa+aa...a的值

时间:2016-04-24 06:07:32      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:求S=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,由输入a(1 <= a <= 9)表示,相加的元素个数由输入b(b<= 1000)表示。

这个算法的优点在于,不用考虑数据溢出问题,因为,当a和b都比较大的时候,结果可能会非常大,甚至可能溢出,因此这里将计算结果保存为字符串处理。

Java代码如下:

技术分享
 1 import java.util.*;
 2  class Test {
 3       public static String sum(int a, int b)  {
 4         StringBuilder builder = new StringBuilder();        //存储计算结果
 5         int extra = 0;                                      //存储进位
 6 
 7         while(b>0){
 8           int value = a * b + extra;                        //将该位上所有的进行累加,并加上低位的进位
 9           extra = value / 10;                               //求进位
10           builder.append(value % 10);                       //将最终结果的对应位添加到结果,倒序添加
11           b--;
12         }
13 
14         while (extra > 0) {                                //进位未处理完,接着处理
15           builder.append(extra % 10);
16           extra /= 10;
17         }
18         return builder.reverse().toString();                //将运算结果反转,并返回
19       }
20     }
21  
22 public class Main {
23     public static void main(String[] args) {
24       int a=9,b=3;
25       System.out.print("S="+a+"+...+");
26       for(int i=1;i<=b;i++)
27           System.out.print(a);
28       System.out.println("="+Test.sum(a,b));
29       
30     }
31 
32 }
View Code

输出为:

S=9+...+999=1107

求S=a+aa+aaa+aaaa+aa...a的值

标签:

原文地址:http://www.cnblogs.com/guozhenqiang/p/5426184.html

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