问:求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。哪里出错了?

问:求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。哪里出错了?

public static void main(String[] args) {

int ge,shi,bai;

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

bai=a/100;

shi=a%100/10;

ge=a%10;

if((bai*shi*ge==42)&(bai+shi+bai==12)){

System.out.println("a"+a);

}


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

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

4回答
慕少0276471 2020-02-26 14:50:37

同学可以参考下我的代码:

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

        int a=num/100;

        int b=(num-a*100)/10;

        int c=num%10;

        if(a*b*c==42&a+b+c==12)System.out.println(num);

        }

       


秃就秃吧 2020-02-22 17:54:11

除了老师说的求和问题。还有就是花括号少了。那部分正确代码如下

public static void main(String[] args) {


int ge,shi,bai;


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


bai=a/100;


shi=a%100/10;


ge=a%10;


if((bai*shi*ge==42)&(bai+shi+bai==12)){


System.out.println("a"+a);


}

}

}


好帮手慕小脸 2020-02-22 15:40:53

同学你好,求一个数的ge,shi,bai,可以这样理解

 取出个位:a%10;比如a=231,对10取余,余下的数就是个位数,就可以得到个位1。

 取出十位: a % 100 / 10;比如a=231,首先231%100拿到余数也就是后两位数字31,然后我们再获取31数字的十位也就是31/10,最终为3,也就是231的十位数字。

取出百位:a/100;比如n=201,201除以100就可以得到百位2啦~

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


好帮手慕小脸 2020-02-22 14:12:32

同学你好,错误原因是因为求积运算错误。同学的bai*shi*bai,所以条件满足不了,打印语句才不会输出。应该是bai*shi*ge。具体修改如下:

http://img1.sycdn.imooc.com//climg/5e50c614093fcfd305920139.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 何猪猪 #1
    老师, 逻辑是对的吧?
    2020-02-22 14:34:00
  • 提问者 何猪猪 #2
    还有就是那个求一个数的ge shi bai的数不是很懂。?
    2020-02-22 14:36:34
  • 华年4930216 回复 提问者 何猪猪 #3
    之前运算符的课程中讲过了int类型计算最后得到的结果只去整数,小数直接舍去,你写的代码最后结果算出来的个,十,百结果是对的,逻辑没有问题,至于程序出错的原因是if语句后面求和运算应该是(bai+shi+ge==12),代码粗心写错了,不是逻辑问题。 如果我的回答解决了你的疑惑,请采纳,祝学习愉快!
    2020-02-28 18:42:43
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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