JAVA基础算法求教!
编写一个程序,求出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);
}
}
}
} --------------------编程问答--------------------
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++;
}
}
} --------------------编程问答-------------------- 楼上正解,那必须是先有a,b,c的值
a=i%10;
b=(i/10)%10;
c=(i/100)%10;
再去判断
if(a+b+c==12 && a*b*c==42){
。如果每值怎么能判断得出。 --------------------编程问答-------------------- 每一次你的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;
}
}
*
*求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);
}
}
}
} --------------------编程问答-------------------- /**
*
*求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);
}
}
}
} --------------------编程问答--------------------
--------------------编程问答-------------------- public class EA{
/**
*
*求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);
}
}
}
}
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++;
}
}
}
--------------------编程问答-------------------- 42=2*3*7,200~300之间的数只能是237或273了
补充:Java , Java SE