正在加载图片...
如何表达我们的这个思想?写个程序! Procedure Findlt(n){ ∥从n个硬币中找出一个较轻的假币 if n=2{ ∥只有两个硬币 天平上翘起的是假币;程序结束; } if n=3{ ∥有三个硬币 任取两个放在天平上: 如果平衡,假币为第三个,否则为翘起的天平端硬币;程序结束; else{ 川有多于三个硬币 将硬币分为几乎数量相同的三堆n1,n2,n3; /其中必定有两堆数量相同 称量其中数量相同的两堆; /不妨假设n1=n2 如果两堆不同重{ /不妨假设n1堆轻 Findlt(n1); else Findlt(n3); }如何表达我们的这个思想?写个程序! Procedure FindIt(n) { //从n个硬币中找出一个较轻的假币 if n=2 { //只有两个硬币 天平上翘起的是假币;程序结束; } if n=3 { //有三个硬币 任取两个放在天平上; 如果平衡,假币为第三个,否则为翘起的天平端硬币;程序结束; } else { //有多于三个硬币 将硬币分为几乎数量相同的三堆n1,n2,n3; //其中必定有两堆数量相同 称量其中数量相同的两堆; //不妨假设n1=n2 如果两堆不同重 { //不妨假设n1堆轻 FindIt(n1); } else FindIt(n3); } }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有