简单递归来啦!
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。