老师请看看我的代码,为什么找不到满足条件的值?

老师请看看我的代码,为什么找不到满足条件的值?

package com.Imooc.cycle;

public class G3 {
	
	public static void main(String[] args) {
		int n=200,y=0,z=0;
		for(;;){
			n++;
			y=n-200-z;
			z=n-200-10*y;
			if(((y+z)==10)&&((y*z)==21)){
				System.out.println(n);
			}
			if(n==300){
				break;
			}
			}
		}
		
	
	}


正在回答

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

1回答

你这个是4-4的作业吗?首先要取出个十百为的数字,你的取值方式不对,应该这样取:

//取出百位数

bai=n/100;

//取出十位数

shi=(n/10)%10;

//取出个位数

ge=n%10;

并且条件也不对,应该是个十百数位上的积为42,和为12

for循环可以改写成for(int n=200;n<=300;n++)这样就不用在循环中写n++,还有就是if(n==300)的语句了。

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

  • 慕村6529899 提问者 #1
    package com.Imooc.cycle; public class G3 { public static void main(String[] args) { for(int n=200,y,z;n<=300;n++){ y=(n/10)%10; z=n%10; if(((2+y+z)==12)&&((2*y*z)==42)){ System.out.println(n); } } } } 老师我改了一下对了,这个y=n-200-z; 的表达式右边不可以出现变量吗? z=n-200-10*y
    2017-10-16 15:22:19
  • 好帮手慕珊 回复 提问者 慕村6529899 #2
    赋值表达式=右边是可以出现变量的,只要变量有值就行。
    2017-10-16 15:34:02
  • 慕村6529899 提问者 回复 好帮手慕珊 #3
    package com.Imooc.cycle; public class G4 { public static void main(String[] args) { int n=200,x=0,y=0,z=0; do{ x=n/100; y=n-100*x-z;//(n/10)%10; z=n-100*x-10*y;//n%10 if(((x+y+z)==12)&&((x*y*z)==42)){ System.out.println(n); }n++; }while(n<=300); } } x=n/100;y=n-100*x-z;//(n/10)%10;z=n-100*x-10*y;//n%10;那这个表达式这样写为什么不可以呢
    2017-10-16 15:39:59
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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