#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>//求n的阶乘intFac1(int n){int i =0;int ret =1;for(i =1; i <= n; i++){
ret *= i;}return ret;}//递归的方式intFac2(int n){if(n <=1)return1;elsereturn n *Fac2(n -1);}intmain(){//求n的阶乘int n =0;int ret =0;int ret2 =0;scanf("%d",&n);
ret =Fac1(n);//循环的方式
ret2 =Fac2(n);printf("%d\n", ret);printf("--------------------------\n");printf("%d\n", ret2);return0;}
5120--------------------------120
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>//斐波那契数列//1 1 2 3 5 8 13 21 34 55......//用递归反而做了大量重复运算int count =0;intFib(int n){if(n ==3){//测试第3个斐波那契数的计算次数
count++;}if(n <=2)return1;elsereturnFib(n -1)+Fib(n -2);}intFib2(int n){int a =1;int b =1;int c =1;while(n>2){
c = a + b;
a = b;
b = c;
n--;}return c;}intmain(){int n =0;int ret =0;int ret2 =0;scanf("%d",&n);
ret =Fib(n);printf("ret = %d\n", ret);printf("count = %d\n", count);printf("-----------------------------\n");
ret2 =Fib2(n);printf("ret2 = %d\n", ret2);return0;}
10
ret =55
count =21-----------------------------
ret2 =55