17年蓝桥杯国赛--数位和(Java)


标题:数位和

数学家高斯很小的时候就天分过人。一次老师指定的算数题目是:1+2+...+100。
高斯立即做出答案:5050!

这次你的任务是类似的。但并非是把一个个的数字加起来,而是对该数字的每一个数位作累加。
这样从1加到100的“和”是:901

从10加到15是:21,也就是:1+0+1+1+1+2+1+3+1+4+1+5,这个口算都可以出结果的。

按这样的“加法”,从1加到1000是多少呢? 请通过浏览器提交该结果。

当然,我们并不期望你能像高斯一样,发现数字背后深奥的秘密,只要请计算机帮忙,一切都easy!

注意:你需要提交的是一个整数,不要填写任何多余的内容(比如:说明性文字)

                                                                           答案:13501

10、11、12、13、14、15看起来是不是特别有规律,用字符串连接,然后转换为char型数组,分位求和即可得出答案

public class _01数位和 {

	public static void main(String[] args) {
		int sum = 0;
		String str = "";
		for(int i = 1;i <= 1000;i++){
			str += i;
		}
		char[] arr = str.toCharArray();
		for(int i = 0;i < arr.length;i++){
			sum += arr[i]-'0';
		}
		System.out.println(sum);
	}

}

猜你喜欢

转载自blog.csdn.net/Baobab_Tree/article/details/89503044