蓝桥杯普及题:Tom数

这个题目的意思很直观,无非就是输入一个正整数,再将这个正整数里面的每个数字进行相加,得到最终的结果进行输出。

解析:这个题目一眼看过去就可以发现要考查的知识点就是:遍历一个字符串中的单个字符。

但是其实除了这个点,还有个点也要考虑进去,那就是"int的取值范围",这个地方比较容易忽视,我第一遍就错在这个地方了。因为题目一开始就说到是正整数,所以我条件反射的就用了Scanner类中的nextInt()方法进行数据获取,运行后看了报错解析才发现问题。我们知道int类型的最大值的取值范围是231-1,而题目要求输入的数<232,所以如果我们用nextInt()这个方法去接数据就容易超出这个范围,而且还得将这个int转成String进行遍历。用next()这个方法就不存在以上的这些问题了。

上代码

package _12_26_test;

import java.util.Scanner;

public class six {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);

		System.out.println("输入一个正整数(按回车键换行)");

		while (scanner.hasNext()) {
			int tem = 0;
			String StrNum = String.valueOf(scanner.nextInt());

			for (int i = 0; i < StrNum.length(); i++) {
				tem = tem + Integer.parseInt(StrNum.charAt(i) + "");
			}

			System.out.println(tem);

		}

	}

}

结果:

猜你喜欢

转载自www.cnblogs.com/lyd447113735/p/12665222.html