如何用1个6L的水杯和一个5L的水杯,精确的打3L水? 如题。还有,用c#该如何实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 const BigCupSize = 6, SmallCupSize = 5; int iSrcRemain = 0, iDestRemain = 0, iTurn = 0; while (iDestRemain != 3) { iSrcRemain = BigCupSize; //大杯倒满水 iSrcRemain = (iDestRemain + BigCupSize) % SmallCupSize; //倒入小杯后大杯剩余 iDestRemain = iSrcRemain; //往小杯中倒入大杯中的剩余 iTurn++; printf("第%d次,小杯剩余%d;\n", iTurn, iDestRemain); } printf("ok!\n"); return 0; int darongling = 6; int xiaorongling = 5; int da=6; int xiao=5; int xiangyangderongling=3; while (true) { da = darongling ; xiao=xiaorongling -( da - xiao); if (xiao == xiangyangderongling) { MessageBox.Show("成功"); return; } } 呵呵,你那三个1往哪儿放?6(0)->66->55->06(1)->56(0)->66->55->06(2)->56(0)->66->56(3)老掉牙的题目... 作为一个通用解题思路,一看就不可行。xiao会出现负数的水量,而且对于“两个杯子是7升、3升,要求称出5升水来”的问题“xiao == xiangyangderongling”永远不成立,程序永远停不下来,所以这是个不成立的解题程序。实际上,胡乱写的程序是没有考虑到状态的循环重复的,只要看看程序有没有这方面考虑就知道思路如何。只要考虑到这一点,具有回溯功能,就能够找到解答,或者由程序断言没有可能得到结果。 int A = 0; int B = 0; while (A<3) { B = A; A = 0; int x2=5-B; A = A + 6; A = A - x2; } 我这个只是按lz条件,如果按sp1234我的就有问题了sp1234的应该是递归而不是循环 先装满5升的,再倒给6升的,此时6L的还差一升才满,再装满5L的,到给6L的一升,5L的里面还剩4L,把6L的水全部倒掉,把5L里面剩的4L到给6L,在装满5L的,添加满6L的,最后5L的里面就剩3L 谢谢 WPF中,如何使用图像API进行绘制控件,让控件能够在窗体中浮动 webClient.DownloadFile 403 Forbidden 求正则,取内容 在studio 2005里怎样让window窗体上的关闭按钮不显示 大家帮帮忙~求上个月的今天 用OleDbDataAdapter连接ACCESS数据库出现错误 请各位大侠支招 DataGridView中显示图片 作一个网站在线人数的功能怎么做 word2003编程 在word中插入图片后如何继续插入文字或图片 WebBrowser.DocumentCompleted触发异常的问题,求教各位高手
int iSrcRemain = 0, iDestRemain = 0, iTurn = 0;
while (iDestRemain != 3)
{
iSrcRemain = BigCupSize; //大杯倒满水
iSrcRemain = (iDestRemain + BigCupSize) % SmallCupSize; //倒入小杯后大杯剩余
iDestRemain = iSrcRemain; //往小杯中倒入大杯中的剩余
iTurn++;
printf("第%d次,小杯剩余%d;\n", iTurn, iDestRemain);
}
printf("ok!\n");
return 0;
int xiaorongling = 5;
int da=6;
int xiao=5;
int xiangyangderongling=3;
while (true)
{
da = darongling ;
xiao=xiaorongling -( da - xiao);
if (xiao == xiangyangderongling)
{
MessageBox.Show("成功");
return;
}
}
6->5
5->0
6(1)->5
6(0)->6
6->5
5->0
6(2)->5
6(0)->6
6->5
6(3)老掉牙的题目...
作为一个通用解题思路,一看就不可行。xiao会出现负数的水量,而且对于“两个杯子是7升、3升,要求称出5升水来”的问题“xiao == xiangyangderongling”永远不成立,程序永远停不下来,所以这是个不成立的解题程序。实际上,胡乱写的程序是没有考虑到状态的循环重复的,只要看看程序有没有这方面考虑就知道思路如何。只要考虑到这一点,具有回溯功能,就能够找到解答,或者由程序断言没有可能得到结果。
int B = 0;
while (A<3)
{
B = A;
A = 0;
int x2=5-B;
A = A + 6;
A = A - x2;
}