#include<stdio.h>
double jiecheng(int n,int res)
{
if(n==1)
return res;
return jiecheng(n-1,n*res);
}
int main()
{
int n;
scanf("%d",&n);
double e=1;
for(int i=1;i<=n;i++)
{
int res=1;
double temp=jiecheng(i,res);
e+=((double)(1/temp));
}
printf("%.2lf",e);
return 0;
}
小心:数值类型,,下面是阶乘返回int类型,没有得到2.72这个值
#include<stdio.h>
int jiecheng(int n,int res)
{
if(n==1)
return res;
return jiecheng(n-1,n*res);
}
int main()
{
int n;
scanf("%d",&n);
double e=1;
for(int i=1;i<=n;i++)
{
int res=1;
int temp=jiecheng(i,res);
e+=((double)(1/temp));
}
printf("%.2lf",e);
return 0;
}
常数e的值可以表示为无穷级数: e=1+1/1!+1/2! +1/3! +… 1/n!编写一个程序,计算e的值,其中n是用户输入的整数。输入不考虑0,负数或者其他特殊情况。
强数是各位数字的阶乘和等于原始数的数,输入一个数字N,检查它是否为强数。是则输出YES,否则输出NO。比如145,1!+4!+5!=145
#include<stdio.h>
int jiecheng(int n,int res)
{
if(n==1)
return res;
return jiecheng(n-1,n*res);
}
void jiangshu(int n)
{
int sum=0;
int k=n;//我忘记暂存n了
while(n)
{
int r=n%10;
// int res=1;
int temp=jiecheng(r,1);
sum+=temp;
n=n/10;
}
if(sum==k)
printf("YES");
else
printf("NO");
}
int main()
{
int n;
scanf("%d",&n);
jiangshu(n);
return 0;
}
int k=n;//我忘记暂存n了