计算s=a+aa+aaa+aaaa+aa...a形式的表达式的和,其中a是一个数字

题目:

求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:

 

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

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


 

你可能感兴趣的:(算法比赛相关)