递归算法的问题,求助!!
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。本题要求对给定的非负整数n,求该级数的前n项和。输入格式:
输入第一行中给出非负整数n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。#include<stdio.h>
double fun(int n)
{
if(n==0||n==1) return 1;
else return n*fun(n-1);
}
int main()
{
int n;
scanf("%d",&n);
int i;
double sum=1.0;
for(i=1;i<=n;i++)
{
sum+=1.0/fun(i);
}
printf("%.8lf\n",sum);
}
fun函数的解释与用处不明,求解!!! #include <stdio.h>
unsigned long long f(int n){
unsigned long long res = 1;
for(int i = n; i > 0; i--) res *= i;
return res;
}
int main()
{
int n;
double e = 0;
scanf("%d", &n);
for(int i = 0; i < n+1; i++) e += (1./f(i));
printf("%.8lf", e);
return 0;
} #include <stdio.h>
unsigned long long f(int n){
if(!n) return 1;
else return n*f(n-1);
}
int main()
{
int n;
double e = 0;
scanf("%d", &n);
for(int i = 0; i < n+1; i++) e += (1./f(i));
printf("%.8lf", e);
return 0;
} 题目要求输入非负数 n(n <= 1000)根本不能用普通方法算(75 乘阶肯定溢出,更别说 1000 乘阶了)
页:
[1]