| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 732 人关注过本帖
标题:C++ 实例分享 《猴子吃桃》
只看楼主 加入收藏
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:406
专家分:190
注 册:2021-4-9
结帖率:97.26%
收藏
 问题点数:0 回复次数:1 
C++ 实例分享 《猴子吃桃》
                    猴子吃桃

一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;
第二天又吃了一半,再加上一个;后面每天都是这样吃。到第10天的时候,
小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。

程序代码:
#include <iostream>

using namespace std;


int main()
{
    int day_peac[11]={0};

    for(int day=10; day>=1; day--)
        day_peac[day] = day>9 ? 1 : (day_peac[day+1] + 1) * 2;
    cout << endl<< "    第一天共摘的桃子数量为 "<<day_peac[1] <<"个." << endl;
    cout  << endl<< "    这是什么猴子呀??? 猪一天也吃不了 "<<day_peac[2]+2 <<"个桃子呀!!!"<< endl;
    return 0;
}


图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: int 猴子 猴子吃桃 C++ 分享 
2022-07-13 01:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
设第i天剩余 x 颗,则第i天的前一天剩余 2*x+2 颗。
即 f(1)=x; f(i+1)=2*f(i)+2
故有 f(i) = x*2^(i-1) + 2^i-2

程序代码:
#include <stdio.h>

int main( void )
{
    // 已知:第i天剩余x颗
    const unsigned i = 10;
    const unsigned x = 1;

    // 则第一天采摘量: x*2^(i-1) + 2^i-2
    printf( "%u\n", x*(1u<<(i-1))+(1u<<i)-2 );
}
2022-07-13 08:58
快速回复:C++ 实例分享 《猴子吃桃》
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036576 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved