问题: (n < 10)写个算法
回答:
方法一:
#include<stdio.h>
int main()
{
int f[10]={1,1,2,6,24,120,720,5040,40320,362880};
int n;
double e;
printf("n e\n");
printf("- -----------\n");
printf("%d %d\n",0,1);
printf("%d %d\n",1,2);
printf("%d %.1f\n",2,2.5);
e=2.5;
for(n=3;n<=9;n++)
{
e+=1.0/f[n];
printf("%d %0.9f\n",n,e);
}
return 0;
}
方法二:#include <cstdio>
#include <cstring>
#include <cmath>
int main() {
double e;
int i, tmp;
e = 1;
tmp = 1;
printf("n e\n");
printf("- -----------\n");
printf("0 1\n");
for(i = 1; i < 10; i++) {
tmp *= i;
e += 1.0/tmp;
if(i>=3) printf("%d %.9lf\n", i, e);
else if(2 == i) printf("%d %.1lf\n", i, e);
else printf("%d %.0lf\n",i, e);
}
return 0;
}
方法很多,万变不离其宗, 主要是输出要注意格式以及范围就行。