C语言,椰果数量问题,计算最少的椰果数

本文介绍了一个涉及5位水手分配椰子的问题,通过迭代法计算在满足特定规则下,最少需要多少椰子才能确保每个人都能得到椰子。算法核心是条件1(第一个人分配)和条件2(后续分配),展示了如何逐步减少椰子直到找到最小总数。
摘要由CSDN通过智能技术生成

题目:5个水手在岛上发现一堆椰子,迭代法计算原来这堆椰子总数至少是多少?

说明:1、编译器为vs,所以输入函数写为了scanf_s!

           2、解析已包含程序之中;

代码如下:

#include <stdio.h>
int yeeguo(int n);//函数原型;
int main()
{
	int n;
	printf("请随便输入一个数:");
	scanf_s("%d", &n);//输入你所想的总椰果数(随便输一个小一点的数,
	//因为他不是真正的椰果数,即不影响最终结果只会影响循环次数)
	printf("总椰果数=%d\n", yeeguo(n));
	return 0;
}

int yeeguo(int n)
{
	int i, del;
	for (i = 1; i <= 5; i++)
	{
		if (i == 1)//条件1;
		{
			del = n;      //先把n给第一个人;
		}

		if (del % 5 == 1)//条件2
		{
			del = (del - 1) / 5 * 4;//后面的人得到的人椰果数;
		}
		else
		{
			n++;//测试是否满足条件2,不满足就使其往上增大;
			i = 0;//控制i的条件,使当不满足条件2;每次都能执行条件1;
			continue;//加不加都可;
		}
	}
	return n;

运行结果如下:

 

以上只是个人观点,如有错误还请指出! 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值