请问取出个位、十位、百位上的数,这里怎么取?怎么算?

请问取出个位、十位、百位上的数,这里怎么取?怎么算?

        int ge,shi,bai;

        int sum,mul;

//使用for循环

        for(int n=200; n<=300;n++) {

//取出百位数

   bai=n/100;

//取出十位数

shi=(n/10)%10;

//取出个位数

   ge=(n%100)%10;

//计算三个数字之积

            mul = ge*shi*bai;

//计算三个数字之和

sum = ge+shi+bai;

            //如果积等于42并且和为12,则将满足条件的数输出

            if((mul==42)&&(sum==12))

               System.out.println(n);

        }

看别人答案取出来了,但是算法看不太明白,请教老师讲解下。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
冷晓枫 2017-08-22 23:20:01

bai=n/100;因为是整形所以得出的结果就是百位上的数,例如345/100=3;shi=(n/10)%10;取十位上的数,先除以10使得个位上的数变为小数,然后取余就能得出十位上的数,例如345/10=34;34%10=4;个位上直接除以10取余就行了,345%10=5;

  • KABOKUO #1
    最后的System.out.println(n);为什么不能写成System.out.println(bai+shi+ge)?
    2017-10-18 22:00:54
  • System.out.println(bai+shi+ge)是输出个十百位数字的和,不是输出这个数字。
    2017-10-19 10:31:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师