吃糖果-C语言

本文通过一个关于吃糖果的有趣问题,介绍了递归算法在解决实际问题中的应用。名名的妈妈给了他一盒N块巧克力,每天可以吃1块或2块,文章探讨了名名有多少种吃完巧克力的方法,并提供了C语言实现的代码。

三、吃糖果
题目描述
名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。
 妈妈告诉名名每天可以吃一块或者两块巧克力。 假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。
 例如: 如果N=1,则名名第1天就吃掉它,共有1种方案; 
如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案; 
如果N=3,则名名第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名共有2+1=3种方案; 
如果N=4,则名名可以第1天吃1块,剩3块,也可以第1天吃2块,剩2块,共有3+2=5种方案。 
现在给定N,请你写程序求出名名吃巧克力的方案数目。
输入描述:
输入只有1行,即整数N。
输出描述:
可能有多组测试数据,对于每组数据,
输出只有1行,即名名吃巧克力的方案数。
示例1
输入
4
输出
5

代码如下:

#include <stdio.h>
int fun(int n){
	if(n>0&&n<4){
		return n;
	}else if(n>=4){
		return fun(n-1)+fun(n-2);
	}
}
int main(){
	int n;
	scanf("%d",&n);
	int res=fun(n);
	printf("%d",res);
	return 0;
}

 

### C语言糖果问题的程序代码实现 以下是使用C语言编写的买糖果问题的程序代码。此代码基于用户输入的条件,模拟购买糖果的过程并输出最终结果。 ```c #include <stdio.h> int main() { int total_candies = 0; // 总糖果数 int price_per_candy, money_available, candies_bought; // 输入糖果单价和可用资金 printf("请输入糖果的单价和您拥有的资金(以空格分隔):"); scanf("%d %d", &price_per_candy, &money_available); // 计算可以购买的糖果数量 if (price_per_candy > 0 && money_available >= 0) { candies_bought = money_available / price_per_candy; total_candies += candies_bought; // 输出购买结果 printf("您可以购买 %d 颗糖果。\n", candies_bought); printf("剩余资金为 %d 元。\n", money_available % price_per_candy); } else { printf("输入无效,请确保单价大于0且资金非负数。\n"); } return 0; } ``` 此代码实现了根据用户输入的糖果单价和可用资金计算可购买糖果的数量,并输出剩余资金。如果输入的单价或资金无效,则会提示错误信息[^2]。 #### 程序逻辑说明 - 用户需要输入糖果的单价和可用资金。 - 程序通过整数除法计算能够购买的最大糖果数量。 - 剩余资金通过取模运算得出。 - 如果输入的单价小于等于0或资金为负数,则会提示输入无效[^2]。 #### 示例运行 假设糖果单价为5元,用户有37元资金: ```plaintext 请输入糖果的单价和您拥有的资金(以空格分隔):5 37 您可以购买 7糖果。 剩余资金为 2 元。 ``` 如果输入无效数据,例如单价为0或资金为负数: ```plaintext 请输入糖果的单价和您拥有的资金(以空格分隔):0 100 输入无效,请确保单价大于0且资金非负数。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值