题目:
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。
总括:2 种方法(1、操作对象:字符串、数字 2、操作对象:数字)
方法一:(基本思想:字符串拼接,字符串转换为数值,求和)
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);
}
}
方法二:(数字操作)
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:
程序看起来很简单,不过写这篇博客的原因是,程序的思想很值得借鉴。大多数人估计都会先到第二种方法,
方法一有点儿新奇。还是那句话,编程思想值得推崇。