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!

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

代码一

package YRZ;
public class YRZ01 {
    public static void main(String[] args) {
        int sum=0;//保存和
        for(int i=1;i<1001;i++){
            int x=i;//举例:123%10=3,123/10=12,12%10=2,12/10=1,1%10=1,1/10=0.
            while(x!=0){
                sum=sum+x%10;
                x=x/10;
            }
        }
        System.out.println(sum);
    }
}

代码二

package YRZ;
public class YRZ01 {
    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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值