题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

算法: 定义一个变量b, 赋初值为0;定义一变量sum, 赋初值为0, 进入循环后,将a + b 的值赋给b,将sum + b 的值赋给sum; 同时,将a 增加十倍,++ i; 继续循环; 循环结束后,输出sum 的值。

 


1 package com.li.FiftyAlgorthm;
2
3 import java.util.Scanner;
4
5 /**
6 * 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
7 *
8 * 算法: 定义一个变量b, 赋初值为0;定义一变量sum, 赋初值为0,
9 * 进入循环后,将a + b 的值赋给b,将sum + b 的值赋给sum;
10 * 同时,将a 增加十倍, ++ i; 继续循环;循环结束后,输出sum 的值。
11 * @author yejin
12 */
13 public class Plus {
14 static long a = 2, b = 0;
15 public static void main(String[] args) {
16 Scanner s = new Scanner(System.in);
17 int n = s.nextInt();
18 int i = 0;
19 long sum = 0;
20 while(i < n) {
21 b = b + a;
22 sum = sum + b;
23 a = a * 10;
24 ++ i;
25 }
26 System.out.println("input number: " + n);
27 System.out.println(sum);
28 }
29