搞不定,就是有问题。求200-300之间的数,且满足三个数字之和为12 之积为42.

搞不定,就是有问题。求200-300之间的数,且满足三个数字之和为12 之积为42.

public class RunNian {

    public static void main(String[] args) {

//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字

        int ge=0,shi=0,bai=0,ji,he;

//int a;

       // int ji=0;

        

//使用for循环

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

//取出百位数

bai=a/100;

shi=a/10%10;

ge=a/10;

}

  ji=ge*shi*bai;

System.out.println("三个数之积为:"+ji);//计算三个数字之积

//计算三个数字之和

     he=ge+shi+bai;

System.out.println("三个数之和为:"+he);

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

    if(ji==42&he==12){

          System.out.println(a);

    }

        

}

}


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

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

1回答
好帮手慕小班 2021-06-02 17:42:17

同学你好,1、同学取出个位数的表达式有误,注意取出个位:i%10;比如i=231,对10取余,余下的数就是个位数,就可以得到个位1。而同学是直接这样取出个位  ge = a / 10;   比如i=231  231/10 结果是23,取出的并不是个位数。

http://img1.sycdn.imooc.com//climg/60b752530902097a02340063.jpg

    ​2、注意要将if判断放在for循环中,对每次的ji与he进行判    ​断,而不是放在for循环外面,只对最后一次ji与he的值进行判断。

http://img1.sycdn.imooc.com//climg/60b75275090a32f507020627.jpg

修改后代码如下


public class RunNian {

public static void main(String[] args) {

// 定义变量ge、shi、bai,用于存放个位、十位、百位上的数字

int ge = 0, shi = 0, bai = 0, ji, he;
// int a;
// int ji=0;
// 使用for循环
for (int a = 200; a < 300; a++) {
// 取出百位数

bai = a / 100;
shi = a / 10 % 10;
//ge = a / 10;
ge = a % 10;

ji = ge * shi * bai;
//System.out.println("三个数之积为:" + ji);// 计算三个数字之积

// 计算三个数字之和
he = ge + shi + bai;
//System.out.println("三个数之和为:" + he);

// 如果积等于42并且和为12,则将满足条件的数输出
if (ji == 42 & he == 12) {
System.out.println(a);
}
}



}

}

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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