JAVA基础算法求教!

mengfei_315 2012-10-20 01:12:43
编写一个程序,求出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);
}
}
}

}
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsz521 2012-10-20
  • 打赏
  • 举报
回复
42=2*3*7,200~300之间的数只能是237或273了
A18767101172 2012-10-20
  • 打赏
  • 举报
回复
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++;
}
}
}
Nick_Lele 2012-10-20
  • 打赏
  • 举报
回复

/**
*
*求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);
}
}
}

}

Nick_Lele 2012-10-20
  • 打赏
  • 举报
回复
/**
*
*求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);
}
}
}

}
Nick_Lele 2012-10-20
  • 打赏
  • 举报
回复
/**
*
*求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);
}
}
}

}
ceclinux 2012-10-20
  • 打赏
  • 举报
回复
每一次你的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;
}

}
shenhua 2012-10-20
  • 打赏
  • 举报
回复
楼上正解,那必须是先有a,b,c的值
a=i%10;
b=(i/10)%10;
c=(i/100)%10;
再去判断
if(a+b+c==12 && a*b*c==42){
。如果每值怎么能判断得出。
aimsgmiss 2012-10-20
  • 打赏
  • 举报
回复

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++;
}

}

}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧