一道小题

zMhua_07 2007-09-04 03:46:38
用100元买糖,巧克力3元一块,奶糖2元一块,水果糖0.5元一块。请计算出购买100块糖有几种方案
给个代码
...全文
240 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zMhua_07 2007-09-05
  • 打赏
  • 举报
回复
懂了 3Q
RishonLi 2007-09-05
  • 打赏
  • 举报
回复
我认为上面的一百还有待完善。
钱为100元,如果光买巧克力的话,一百块是300元,光买奶糖的话,一百块是200元。
所以,巧克力最多三十三块,奶糖最多五十块。
我看这样可以加快一点速度。
malligator 2007-09-05
  • 打赏
  • 举报
回复
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;}
}
xiekun2008 2007-09-04
  • 打赏
  • 举报
回复
你的程序没有说明是100个糖,只使说明要把钱花完
建议你读读楼上的那个百鸡百钱问题,两重循环就够了
但是由于你的题目并没有要求100元钱必须花完
那么算法可能就和楼上的不一样了。在加上约束条件的时候,只需要使买够了100个而且没花完100元都算正确解。
但是如果数据量大,条件多的时候的时候穷举法是行不通的。有兴趣研究的话可以通过邮箱联系我xiekun2008@126.com
lfcai 2007-09-04
  • 打赏
  • 举报
回复
楼主应该多看看基础知识~~~~~~~~~~
gongyali2005 2007-09-04
  • 打赏
  • 举报
回复
/*百钱买百鸡
*公鸡五钱一只;母鸡三钱一只;小鸡一钱三只;
*
*现有一百钱,问可以买多少只公鸡,母鸡.小鸡?
*/
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();
}
}
}
}
}
这是我去年写的百钱百鸡的程序.应该和你的差不多.当然.我现在也是菜鸟.
dhyanshi 2007-09-04
  • 打赏
  • 举报
回复
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种
zMhua_07 2007-09-04
  • 打赏
  • 举报
回复
我还是没明白我的循环怎么了?
renshaopoi 2007-09-04
  • 打赏
  • 举报
回复
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)
zMhua_07 2007-09-04
  • 打赏
  • 举报
回复
public class work{
public static void main(String[] args){
int i;
int j;
int k;
int sum=0;
for(i=0;i<100-i;i++)
for(j=0;j<100-i;j++)
for(k=0;k<100-i-j;k=k+2)
{if((3*i+2*j+0.5*k==100))
{sum=sum+1;}


}
System.out.println(sum);

}
}
哪不对了?
ohuan 2007-09-04
  • 打赏
  • 举报
回复
这是贪心算法的例子。。。建议看看“算法设计”方面的书,里面都有详细讲解。
dhyanshi 2007-09-04
  • 打赏
  • 举报
回复
这个教科书上都有例子的...........................
bit1010 2007-09-04
  • 打赏
  • 举报
回复
上大一的题目了,
定义三个变量用于存放i,j,k,只要k是偶数,3*i+2*j+0.5*k = 100,i>=0,j>=0,K>=0,只要这个式子成立即可。

62,623

社区成员

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

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