简单递归来啦!

时间: 1ms        内存:128M

描述:

小祥学了C语言的递归之后,发现递归函数非常奇妙,它可以调用自己,但是呢,自己对递归的了解又不够透彻。为了更透彻的学习递归,小祥决定先从简单的递归学起,小祥编写了一段代码,但后面的代码不会写了,便向你求助了


#include<stdio.h>
int main()
{
    int n;
    int i;
    int fact(int);
    scanf("%d",&n);
    for(i=0;i<=n;i++){
        printf("%d!=%d\n",i,fact(i));
    }
}

输入:

一个整数n(0<=n<=10)

输出:

从0到n的阶乘

示例输入:

5

示例输出:

0!=1
1!=1
2!=2
3!=6
4!=24
5!=120

提示:

参考答案(内存最优[1120]):

#include<stdio.h>
 /*******************************
     请在该部分补充缺少的函数 
     ********************************/
int Fibonacci(int n){
	int f1=1;
	int f2=1;
	int i;
    int ans=0;
	if(n==1||n==2){
		return 1;
	}
	for(i=3;i<=n;++i){
		ans=f1+f2;
		f2=f1;
		f1=ans;
	}
	return ans;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",Fibonacci(n));
return 0;	
} 

参考答案(时间最优[1]):

#include<stdio.h>
int main()
{
    int n;
    int i;
    int fact(int);
    scanf("%d",&n);
    for(i=0;i<=n;i++){
        printf("%d!=%d\n",i,fact(i));
    }
}
int fact(int n)
  {

      if(n==1||n==0)
        return 1;
      else
        return fact(n-1)*n;




  }

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。