题目:

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。  

程序分析:关键是计算出每一项的值。

总括:2 种方法(1、操作对象:字符串、数字  2、操作对象:数字)

 

方法一:(基本思想:字符串拼接,字符串转换为数值,求和)

 

<span style="font-size:18px;">import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class sum {

public static void main(String[] args) throws IOException {
int sum = 0;
String output = "";
BufferedReader stadin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("请输入a的值");

String input = stadin.readLine(); // 读入a的值

for (int i = 1; i <= Integer.parseInt(input); i++) {
output += input; // 字符串的拼接
int a = Integer.parseInt(output); // 将字符串转换为整数结果,输出
sum += a; // 求和
}
System.out.println(sum);
}

}
</span>

方法二:(数字操作)

 

 

public class prime {
public static void main(String[] args) throws IOException {
int n, sum = 0, t = 0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(
System.in));

String input = stadin.readLine();
n = Integer.parseInt(input);

for (int i = 1; i <= n; i++) {
t = t * 10 + n;
sum = sum + t;
}
System.out.println(sum);
}
}

PS:

 

程序看起来很简单,不过写这篇博客的原因是,程序的思想很值得借鉴。大多数人估计都会先到第二种方法,

方法一有点儿新奇。还是那句话,编程思想值得推崇。