递推递归--I蟠桃记

来源:互联网 发布:恢复出厂设置数据恢复 编辑:程序博客网 时间:2024/06/05 21:02

1.题目描述

一堆桃子,每次只吃剩下桃子数的一半多一个,到第n天准备吃的时候只剩一个桃子,计算第一天几个桃子。

2.思路分析

正着推不大好推,此题可以倒着推,可转化为第1天时一个桃子,到第n天几个桃子。然后运用递归调用,写出函数

就可以解决了。

3.代码

#include<iostream>#include<vector>using namespace std;int fun(int n){    if(n==1)    return 1;    else return(fun(n-1)+1)*2;}int main(){    vector<int>p;    int n,i;    for(;;)    {        cin>>n;        if(n!=0)        {            p.push_back(fun(n));        }        else        break;    }    for(i=0;i<p.size();i++)    {        cout<<p[i]<<endl;    }    return 0;}
4.感受

思维要灵活,正反都要想。

0 0
原创粉丝点击