编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12;
帮我看下我写的为什么没有结果呢。错在什么地方。顺便给下正确的写法,谢谢
package xuexi.cn.stu;public class stu { /**
 */
public static void main(String[] args) {
//定义变量
int a,b,c,i;
//定义变量
a=0;
b=0;
c=0;
i=0;
//循环
while(i>=200&&i<=300){
if(a+b+c==12&&a*b*c==42){
a=i%10;
b=(i/10)%10;
c=(i/100)%10;
System.out.println("结果"+a+b+c);
}
}
}}

解决方案 »

  1.   


    public class cc {/**
    */
    public static void main(String[] args) {
    //定义变量
    int a,b,c,i;
    //定义变量
    a=0;
    b=0;
    c=0;
    i=200;
    //循环
    while(i>=200&&i<=300){
    a=i%10;
    b=(i/10)%10;
    c=(i/100)%10;
    if(a+b+c==12 && a*b*c==42){System.out.println("结果"+i);
    }
    i++;
    }}}
      

  2.   

    楼上正解,那必须是先有a,b,c的值
    a=i%10;
    b=(i/10)%10;
    c=(i/100)%10;
    再去判断
    if(a+b+c==12 && a*b*c==42){
    。如果每值怎么能判断得出。
      

  3.   

    每一次你的a,b,c都应该赋值的
    //http://topic.csdn.net/u/20121020/13/5b655444-3f51-4e48-bc5d-7585fd24457a.html?32500
    public class TwoToThreehundred {
    public static void main(String[] args){
    System.out.println(satisfy(200,300,42,12));
    }
    public static int satisfy(int head,int tail,int mul,int sum){
    int i;
    for(i=head;i<=tail;i++){
    String s=String.valueOf(i);
    int m=1,a=0;
    for(int t=0;t<s.length();t++){
    int q=Integer.parseInt(s.substring(t, t+1));
    a=a+q;
    m=m*q;
    }
    if(m==mul&&sum==a)
    return i;
    }
    return -1;
    }}
      

  4.   

    /**
     * 
     *求200-300之间的数:满足  数字的乘积是42数字的和是12
     */
    public class Java02 { public static void main(String[] args){
    for(int i=200;i<=300;i++){
    //得到这个数字的三个位数
    int baiWei = (int)(i/100) ;
    int shiWei = (int)(i/10%10) ;
    int geWei = i%10 ;

    if(baiWei*shiWei*geWei ==42 &&(baiWei+shiWei+geWei==12)){
    System.out.print("     "+i);
    }
    }
    }

    }
      

  5.   

    /**
     * 
     *求200-300之间的数:满足  数字的乘积是42数字的和是12
     */
    public class Java02 { public static void main(String[] args){
    for(int i=200;i<=300;i++){
    //得到这个数字的三个位数
    int baiWei = (int)(i/100) ;
    int shiWei = (int)(i/10%10) ;
    int geWei = i%10 ;

    if(baiWei*shiWei*geWei ==42 &&(baiWei+shiWei+geWei==12)){
    System.out.print("     "+i);
    }
    }
    }

    }
      

  6.   


    /**
     * 
     *求200-300之间的数:满足  数字的乘积是42数字的和是12
     */
    public class Java02 { public static void main(String[] args){
    for(int i=200;i<=300;i++){
    //得到这个数字的三个位数
    int baiWei = (int)(i/100) ;
    int shiWei = (int)(i/10%10) ;
    int geWei = i%10 ;

    if(baiWei*shiWei*geWei ==42 &&(baiWei+shiWei+geWei==12)){
    System.out.print("     "+i);
    }
    }
    }

    }
      

  7.   

    public class EA{
    public static void main(String[]args){
    int a,b,c;
    int i=201;
    while(i>200&&i<300){
    a=i%10;
    b=(i/10)%10;
    c=(i/100)%10;
    if((a+b+c==12)&&(a*b*c==42)){
    System.out.println("i:"+i);
    }
    i++;
    }
    }
    }