【C语言编程练习】5.11 猴子吃桃子问题

1. 问题描述

有一只猴子,第一天摘下若干个桃子,当即吃掉了一半,又多吃了一个,第二天又将剩下的桃子吃掉了一半,又多吃了一个,按照这样的吃法,每天都吃前一天吃下的桃子的一半又一个。到第十天,就剩下了一个桃子。问题:第一天摘下了多少个桃子

2. 题目分析

如果按照正常的思路而言,设第一天摘下了X个桃子

第一天剩下 --- X/2-1个桃子

第二天剩下 ---( X/2-1)/2-1个桃子

 

【问题】如何确保桃子的一半一定是一个偶数呢?

发现应该从最后一天开始想

 

以此类推,到第10天

那么编程是否可以从第10天开始,往前递推,

第10天 1

第9天 (1+1)*2

第8天 (((1+1)*2)+1)*2

 

 

先进行代码尝试吧

【注意】i++还是++i

3. 代码尝试

【版本1】

#include "stdio.h"

 

int main(){

    int num=1;

    int i=1;

    while(i<=10){

        num = (num+1)*2;

        //++i;

        i++;

    }

    printf("the number of peach is %d",num);

}

 

不论是i++还是++i,结果都没有改变

 

 

但正确的结果应该是1534呢!哪里有错呢?? 错误原因是for循环的条件,这个确实是一个易错点,先看看正确的代码。

【最终版本】

#include "stdio.h"

 

int main(){

    int num=1,i;

    for(i=9;i>0;i--){

        num = (num+1)*2;

    }

    printf("the number of peach is %d",num);

}

 

以及下面的版本也是正确的

#include "stdio.h"

 

int main(){

    int num=1;

    int i=1;

    while(i<=9){

        num = (num+1)*2;

        //++i;

        i++;

    }

    printf("the number of peach is %d",num);

}

 

 

那么如何确定循环的次数呢?一定要小心!

这里的第10天对应的就是1了,那么后面的循环应该是针对于第9天了啦!

 

4. 总结

一定要小心循环条件呢!不可以似是而非呢!

 

转载于:https://www.cnblogs.com/mumutoday/p/10548998.html

mysql安装配置教程任务描述 本关任务:编写程序,将英文句子转换成摩尔斯电码的小程序。 相关知识 摩斯密码 摩斯密码(又译为摩尔斯电码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 摩斯密码表_摩斯密码对照表: 字符 电码符号 字符 电码符号 字符 电码符号 字符 电码符号 A .━ B ━ ... C ━ .━ . D ━ .. E . F ..━ . G ━ ━ . H .... I .. J .━ ━ ━ K ━ .━ L .━ .. M ━ ━ N ━ . O ━ ━ ━ P .━ ━ . Q ━ ━ .━ R .━ . S ... T ━ U ..━ V ...━ W .━ ━ X ━ ..━ Y ━ .━ ━ Z ━ ━ .. ls = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."] 编程要求 根据提示,在右侧编辑器补充代码,将英文句子转换成摩尔斯电码。 测试说明 平台会对你编写的代码进行测试: 测试输入: Attack on Pearl Harbor 预期输出: .---.--.-.-.- ----. .--...-.-..-.. .....-.-.-...---.-. 注意:英文句子里的大写字母先转换为小写字母再译码,不是字母的符号保持原样不变。 text = 'Attack on Pearl Harbor' print(text.lower()) # attack on pearl harbor 开始你的任务吧,祝你成功!def morse_code_encryption(txt): """接收明文字符串为参数,返回用摩斯密码加密后的字符串。""" # 补充你的代码 if __name__ == '__main__':
04-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值