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

题目:求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 }
原文地址:https://www.cnblogs.com/justdoitba/p/7142750.html