首先明确题目要求:递归函数,求n!
递归函数的含义:
编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。
n!表示阶乘函数,即1*2*3*……*n
下面给出代码:(C语言实现 )
比较简单的尾递归实现:
#include
long digui(int n); //递归函数声明
int main()
{
int n;
scanf("%d",&n);
printf("the result is %ld",digui(n)); //打印出递归值
return 0;
}
long digui(int n) //递归函数部分
{
if(n>1)
return n*digui(n-1); //调用递归,让n与n-1相乘,直到n<1时
return 1; //n<1时,返回1,实现 n*(n-1)*(n-2)*……*3*2*1
}
//利用递归函数求n!,由键盘输入任一整数,求n!
#include
unsigned long jc(unsigned long n){
if(n==1) return 1;
else return n*jc(n-1);
}
int main()
{
unsigned long n;
while(scanf("%ld",&n) != EOF)
{
printf("%ld\n",jc(n));
}
return 0;
}
#include
#include
inline int _rec(int n){
if (n == 1) return 1;
else return n*_rec(n - 1);
}
int main(void){
int n = 1;
printf("n=");
scanf("%d", &n);
printf("%d\n", _rec(n));
system("pause");
return 1;
}
【C语言の不懂,抄个加法供参考。编写程序,用递归函数完成,求整数1+……+n的和】
#include
int sum(int);
int main() {
int n;
scanf("%d", &n);
printf("1+...+%d = %d", n, sum(n));
return 0;
}
int sum(int x) {
if(x==1) {
return 1;
}
else {
return x+sum(x-1);
}
}
fun(int i)
{
if (i==0)
return 1;
else
return i*fun(i-1);
}
需要计算的数字传递进来就可以了