日期:2014-05-20  浏览次数:20726 次

一道小题
用100元买糖,巧克力3元一块,奶糖2元一块,水果糖0.5元一块。请计算出购买100块糖有几种方案
给个代码

------解决方案--------------------
上大一的题目了,
定义三个变量用于存放i,j,k,只要k是偶数,3*i+2*j+0.5*k = 100,i> =0,j> =0,K> =0,只要这个式子成立即可。
------解决方案--------------------
int i,j,k,;
int count=0;
for(i=0;i <100;i++)
for(j=0;j <100;j++)
for(k=0;k <100;k++)
if(3*i+2*j+0.5*k = 100@@ i+j+k=100){
count++;
}
System.out.println(+countd)
------解决方案--------------------
public class work {
public static void main(String[] args) {
int i;
int j;
int k;
int sum = 0;
for (i = 0; i < 100; i++)
for (j = 0; j < 100 ; j++)
for (k = 0; k < 100 ;k++)
{
if ((3*i+2*j+0.5*k==100)&(i+j+k==100))
{
sum++;
}

}
System.out.println(sum);

}
}


自己对照看吧

结果是7种

------解决方案--------------------
/*百钱买百鸡
*公鸡五钱一只;母鸡三钱一只;小鸡一钱三只;
*
*现有一百钱,问可以买多少只公鸡,母鸡.小鸡?
*/
public class Baiqian
{
public static void main(String [] args)
{
int x=0,z=0;
int y;
for(int i=0;i <20;i++){
x=i;
for(int j=3;j <100;j+=3){
z=j;
y=100-x-z;
if(5*x+3*y+z/3==100&&y> 0&&x> 0){
System.out.print(x+ "\t "+y+ "\t "+z+ "\t ");
System.out.println();
}
}
}
}
}
这是我去年写的百钱百鸡的程序.应该和你的差不多.当然.我现在也是菜鸟.
------解决方案--------------------
你的程序没有说明是100个糖,只使说明要把钱花完
建议你读读楼上的那个百鸡百钱问题,两重循环就够了
但是由于你的题目并没有要求100元钱必须花完
那么算法可能就和楼上的不一样了。在加上约束条件的时候,只需要使买够了100个而且没花完100元都算正确解。
但是如果数据量大,条件多的时候的时候穷举法是行不通的。有兴趣研究的话可以通过邮箱联系我xiekun2008@126.com
------解决方案--------------------
for(i=0;i <100;i++)
for(j=0;j <100-i;j++)
{k=100-i-j;
if((3*i+2*j+0.5*k==100))
{sum=sum+1;}
}
------解决方案--------------------
我认为上面的一百还有待完善。
钱为100元,如果光买巧克力的话,一百块是300元,光买奶糖的话,一百块是200元。
所以,巧克力最多三十三块,奶糖最多五十块。
我看这样可以加快一点速度。