百元买百鸡问题。 假设公鸡 2元/只,母鸡 3元/只,小鸡 3元/只,用100元买100只鸡,有多少种算法,求好理解的算法,感激不尽。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for (int i=0; i<=100/2; i++) { //i表示公鸡数,最少0只,最多100(元)/2(元)=50只 for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数 int k = (100-i-j); //k表示小鸡数 if (2*i+3*j+3*k == 100) { //如果价钱刚好是100 System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k); } }} 回复java代码,点本栏上的带#号的图标选java语言,插入那两对中括号的中间,复制里面的代码有时没有换行,导致//注释一大片,试试从下往上拉鼠标选,或者选文字时鼠标多少变变位置,如从左上到右下拉。直到粘贴时格式还在就行。 小鸡为1元3只时for (int i=0; i<=100/2; i++) { //i表示公鸡数,最少0只,最多100(元)/2(元)=50只 for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数 int k = (100-i-j); //k表示小鸡数 if (2*i+3*j+k/3 == 100) { //如果价钱刚好是100 if(k%3==0){ System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k); } } } } 全都是嵌套for循环,这样时间效率不可以用数学方式吗???小鸡1元3只x+y+z=1002x+3y+z/3=100100>=x>=0,100>=y>=0,100>=z>=0(x、y、z属于Z+) public class Chook{ public static void main(String args[]) { int x,y,z; for(x=0;x<50;x++) { for(y=0;y<33;y++) { if(2*x+3*y+(100-x-y)/3==100&&(100-x-y)%3==0) System.out.println("公鸡有"+x+"只 母鸡有"+y+"只 小鸡有"+(100-x-y)+"只"); } } } } for (int i=0; i<=100/2; i++) { //i表示公鸡数,最少0只,最多100(元)/2(元)=50只 for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数 int k = (100-i-j); //k表示小鸡数 if (2*i+3*j+3*k == 100) { //如果价钱刚好是100 System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k); } }} 如果小鸡是一元3只: for(int gj=0;gj<100/2;gj++){ //gj是公鸡的数量 for(int mj=0;mj<100/3;mj++){ //mj是母鸡的数量 for(int xj=0;xj<100*3;xj++){ //xj是小鸡的数量 if(gj*2+mj*3+xj/3==100&&gj+mj+xj==100){ System.out.println(gj+"----"+mj+"----"+xj); } } } } 贴下单层循环解法的代码:for(int i=1;i<=(200/8);i++){ if((200-i*8)%5==0){ int a=(200-i*8)/5; System.out.println("母鸡"+i+"公鸡"+a+"仔鸡"+(100-i-a)); }} JAVA加密程序 分享和记录 帮我解释 问题:Applet 中提示access denied 关于import的一些疑惑 各位,谁知道在SWT或jface中实现类似DELPHI中DataGird的控件,就是常用来显示表格数据的样子的控件是啥? 这是为什么???存储过程,返回值怎么得不到???? 再问一个Jdbc-Odbc的问题?如何连接SQL Server7.0(不设置数据源)? java中如何使参数传递按传"引用"方式进行? 什么地方有ULTRAEDIT-32 8.20A+ 的注册吗呀? java多线程输出不同文件,数据都写在一个文件中的问题! 如何用正则表达式匹配字符串同时提示那份不符合
for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数
int k = (100-i-j); //k表示小鸡数 if (2*i+3*j+3*k == 100) { //如果价钱刚好是100
System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k);
}
}
}
直到粘贴时格式还在就行。
for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数
int k = (100-i-j); //k表示小鸡数
if (2*i+3*j+k/3 == 100) { //如果价钱刚好是100
if(k%3==0){
System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k);
}
}
}
}
不可以用数学方式吗???
小鸡1元3只
x+y+z=100
2x+3y+z/3=100
100>=x>=0,100>=y>=0,100>=z>=0(x、y、z属于Z+)
public static void main(String args[])
{
int x,y,z;
for(x=0;x<50;x++)
{
for(y=0;y<33;y++)
{
if(2*x+3*y+(100-x-y)/3==100&&(100-x-y)%3==0)
System.out.println("公鸡有"+x+"只 母鸡有"+y+"只 小鸡有"+(100-x-y)+"只");
}
}
} }
for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数
int k = (100-i-j); //k表示小鸡数 if (2*i+3*j+3*k == 100) { //如果价钱刚好是100
System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k);
}
}
}
for(int mj=0;mj<100/3;mj++){ //mj是母鸡的数量
for(int xj=0;xj<100*3;xj++){ //xj是小鸡的数量
if(gj*2+mj*3+xj/3==100&&gj+mj+xj==100){
System.out.println(gj+"----"+mj+"----"+xj);
}
}
}
}
for(int i=1;i<=(200/8);i++){
if((200-i*8)%5==0){
int a=(200-i*8)/5;
System.out.println("母鸡"+i+"公鸡"+a+"仔鸡"+(100-i-a));
}
}