黑马程序员技术交流社区
标题:
这道题做不上了卡在这里一上午了,C语言编写,请写明注释
[打印本页]
作者:
jiangenhao
时间:
2014-4-19 15:10
标题:
这道题做不上了卡在这里一上午了,C语言编写,请写明注释
本帖最后由 jiangenhao 于 2014-4-25 15:33 编辑
A/B/C/D/E 5个人在某天夜里合伙去捕鱼,到凌晨时都疲惫不堪,于是各自找地方睡觉,第二天,A第一个醒来,他将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。C/D/E依次醒来,按同样的方法拿鱼。问他们合伙至少捕了多少条鱼?
作者:
悠悠·漠漠
时间:
2014-4-19 16:43
分析写到程序里面!
#include <stdio.h>
int main()
{
int n,i,x,flag=1; /*flag:控制标记*/
for(n=6;flag;n++) /*采用试探的方法。令试探值n逐步加大*/
{
for(x=n,i=1&&flag;i<=5;i++)
{
if((x-1)%5==0)
{
x=4*(x-1)/5;
} else
{
flag=0; /*若不能分配则置标记falg=0退出分配过程*/
}
}
if(flag)
{
break; /*若分配过程正常结束则找到结果退出试探的过程*/
} else
{
flag=1; /*否则继续试探下一个数*/
}
}
printf("5个人总共捕获的鱼数为:%d\n",n);/*输出结果*/
return 0;
}
复制代码
作者:
董月峰
时间:
2014-4-19 21:19
本帖最后由 董月峰 于 2014-4-19 21:34 编辑
很久之前的一个题目了,当时我的思路如下
int main()
{
for(int x=1;x<999;x++)
{
// 第5人醒来看到了sum条鱼,他仍了一条,拿走了x条
double sum = 5 * x + 1;
// 依次向上算,第一个人醒来看到了sum条,仍了一条,拿走了第四人醒来看到鱼数目的四分之一
for(int i = 4; i >= 1; i--)
{
sum = sum/4 * 5 + 1;
}
// 若sum 正好是整数,结束循环
if(sum == (int)(sum))
{
printf("%d\n", (int)(sum));
break;
}
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2