编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
package com.imooc.flow1;
public class LoopDemo2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int ge,shi,bai,ji,he;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
for(int i=200;i<300;i++){
bai=2;
shi=(i-200)/10;
ge=i%10;
ji=bai*shi*ge;
he=bai+shi+ge;
System.out.println(bai+shi+ge);
if((ji==42)&(he==12)){
System.out.println(bai+shi+ge);
}
}
}
}
逻辑没有问题,最后变成了做加法
System.out.println(bai+""+shi+""+ge);
输出格式有误!
package testBL;
public class Test15 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
int ge,shi,bai,ji,he;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
for(int i=200;i<300;i++){
bai=2;
shi=(i-200)/10;
ge=i%10;
ji=bai*shi*ge;
he=bai+shi+ge;
//System.out.println(bai+shi+ge);
if((ji==42)&(he==12)){
System.out.println(i);
}
}
}
}
这样就可以了,最后直接输出i
上面说的对 输出格式有问题 你输出的是三个数字符串 应该输出i
public class LoopDemo2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int ge,shi,bai,ji,he;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
bai = 2;
for(int i=1;i<10;i++){
ge = i;
shi = 10 - i;
if(ge*shi==21){
System.out.println(""+bai+shi+ge);
}
}
}
}
其实可以优化的,百位一定是2,那么各位和十位的和为10,积为21。
public static void main(String[] args) {
// TODO 自动生成的方法存根
int ge,shi,bai,ji,he;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
for(int i=200;i<300;i++){
bai=2;
shi=(i-200)/10;
ge=i%10;
ji=bai*shi*ge;
he=bai+shi+ge;
if((ji==42)&&(he==12)){
System.out.println(bai*100+shi*10+ge);
}
}
}
public class aaa {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int ge,shi,bai,ji,he;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
for(int i=200;i<300;i++){
bai=2;
shi=(i-200)/10;
ge=i%10;
ji=bai*shi*ge;
he=bai+shi+ge;
if((ji==42)&&(he==12)){
System.out.println(bai*100+shi*10+ge);
System.out.println("bai:"+bai+"---shi:"+shi+"---ge:"+ge);
}
}
}
/**
*【对方法功能进行描述说明】
*@author 【作者】
*@param 【参数1 说明】
*@param 【参数2 说明】
*@return 【返回值】
*@since 【版本号】
*@createTime【时间】
*/
}