递推算法

 

递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。

顺推法:从已知条件出发,逐步推算出要解决问题的方法。例如斐波拉契数列就可以通过顺推法不断递推算出新的数据。

逆推法:从已知的结果出发,用迭代表达式逐步推算出问题开始的条件。

 

斐波那契数列的代码实现

#include <stdio.h>
#define NUM 13
int main(void){
    int i;
    int fib[NUM] = {1,1}; 
    for(i=2; i<NUM; i++){
        fib[i] = fib[i-1] + fib[i-2];
    }
    for(i=0; i<NUM; i++){
        printf("第%d个数字是:%d\n",i,fib[i]);
    }
    getch();
    return 0;
}

 逆推算法。如果一个大学生要在四年(48个月)中每个月都取出一千块,存款的年利率是1.71%,则最开始要存入银行多少钱才能满足条件。

#include <stdio.h>
#define FETCH 1000
#define RATE 0.0171
int main(void){
    double corpus[49];
    int i;
    corpus[48] = (double)FETCH;
    for(i=47; i>0; i--){
        corpus[i] = (corpus[i+1]+FETCH)/(1+RATE/12);
    }
    for(i=48; i>0; i--){
        printf("第%d个月本利合计共%.2f\n",i,corpus[i]);
    }
    getch();
    return 0;
}

 

posted @ 2016-10-12 17:11  建彬  阅读(174)  评论(0编辑  收藏  举报