class BaiJi{
public static void main(String args[]){
int x,y,z;
for(x=1,y=1,z=3;z<98;x++,y++,z++){
if((x+y+z==100)&&(3*x+2*y+z/3==100))
System.out.println("A:"+x+"B:"+y+"C:"+z+);
}
}
}
看到了吗?再来一便
public static void main(String args[]){
int x,y,z;
for(x=1,y=1,z=3;z<98;x++,y++,z++){
if((x+y+z==100)&&(3*x+2*y+z/3==100))
System.out.println("A:"+x+"B:"+y+"C:"+z+);
}
}
}
看到了吗?再来一便
public static void main(String args[]){
int x,y,z;
for(x=1,y=1,z=3;z<98;x++,y++,z++){
if((x+y+z==100)&&(3*x+2*y+z/3==100))
System.out.println("A:"+x+"B:"+y+"C:"+z);
}
}
}
把z后面的 “+” 去掉!
是不是多了个+号?
for(x = 1; x < 100; x++)
{
for(y=1; y < 100; y++)
{
for(z=3; z < 98; z++)
{
if((x+y+z==100)&&(3*x+2*y+z/3==100))
System.out.println("A:"+x+"B:"+y+"C:"+z);
}
}
}
A: 4 B: 34 C: 62
A: 5 B: 32 C: 63
A: 7 B: 29 C: 64
A: 9 B: 26 C: 65
A: 10 B: 24 C: 66
A: 12 B: 21 C: 67
A: 14 B: 18 C: 68
A: 15 B: 16 C: 69
A: 17 B: 13 C: 70
A: 19 B: 10 C: 71
A: 20 B: 8 C: 72
A: 22 B: 5 C: 73
A: 24 B: 2 C: 74
class BaiJi{
public static void main(String args[]){
int x,y,z;
for(x=1;x<=100/3;x++)
for(y=1;y<=100/2;y++)
for(z=3;z<98;z+3)
System.out.println("A:"+x+"B:"+y+"C:"+z);
}
}
if((x+y+z==100)&&(3*x+2*y+z/3.0==100))
^^A: 5 B: 32 C: 63
A: 10 B: 24 C: 66
A: 15 B: 16 C: 69
A: 20 B: 8 C: 72
if((x+y+z==100)&&(3*x+2*y+z/3.0==100))
^^A: 5 B: 32 C: 63
A: 10 B: 24 C: 66
A: 15 B: 16 C: 69
A: 20 B: 8 C: 72
就是那个z/3,
好像是应该6*x+4*y+z=300就对了!为什么这么我给忘了:(
public static void main(String args[]){
for(int x=1;x<=100/3;x++)
for(int y=1;y<=100/2;y++)
for(int z=3;z<98;z++)
if(x+y+z==100 && 3*x+2*y+z/3==100 && z%3==0)
System.out.println("A:"+x+"B:"+y+"C:"+z);
}
}
9*x+6*y+z==300就对了!好像要不是这样:
小鸡得出的数是不能被3整除的或是别的理由吧!
public static void main(String args[]){
int num=0;
int x,y;
int z=0;
for( x=1;x<=100/3;x++)
{
for( y=1;y<=100/2;y++)
{
for( z=3;z<98;z=z+3) {
num++;
if(x+y+z>100 || 3*x+2*y+z/3>100) //1
break; //2
if(x+y+z==100 && 3*x+2*y+z/3==100)
System.out.println("A:"+x+"B:"+y+"C:"+z);
}
if(x+y>99 || 3*x+2*y>99) //1.1
break; //2.1 }
} System.out.println("total run times:"+num); } }如果不加优化(去掉标记1,2,1.1,1.2),程序要运行52800次循环。
加入1,2,运行17167次循环,效率提高2/3!!
加入1.1,1.2,运行16334次循环,没有什么明显效果,可有可无。
呵呵,小程序还曼有意思
程序中 x=y z=x+2
x+y+z==100 => 3x+2=100 这个无解嘛
百元买百鸡是什么问题 没听说过啊
* 公鸡3元一只,母鸡2元一只,小鸡1元三只,
*求100元能买到鸡的组合有多少种变化?
*(
*72般变化??
*孙悟空?
*悟空,不可以吃鸡呦!:D
*)
*/public class BuyChicken
{
public static void main(String args[])
{
int totalCount=0;
for(int x=0;x<=100/3;x++)
for(int y=0;y<=100/2;y++)
for(int z=0;z<=100;z++)
{
if(3*x+y*2+z==100)
{
System.out.println("可买"+x+"只公鸡 "+y+"只母鸡 "+z+"只小鸡\n");
totalCount+=1;
}
}
System.out.println("总共的组合数量为:"+totalCount);
}
没必要嘛
关键就是小鸡的数目怎么处理
z=3t得了 0<z<100
0<t<99
{
int x,y,z;
/* x为公鸡数 y为母鸡数 z为买小鸡花的钱数 因为买公鸡和母鸡花的钱是整数 所以z取值为0到33间的整数*/
for(z=0;z<=33;z++)
for(x=0;x<=100;x++)
for(y=0;y<=100;y++)
{
if(x*3+y*2+z==100&&x+y+3*z==100)
printf("\n male : %2d female : %2d baby : %2d",x,y,z*3);
}
getch();
}
结果:
male : 0 female : 40 baby : 60
male : 5 female : 32 baby : 63
male : 10 female : 24 baby : 66
male : 15 female : 16 baby : 69
male : 20 female : 8 baby : 72
male : 25 female : 0 baby : 75