C 练习实例25
题目:求1+2!+3!+...+20!的和。
程序分析:此程序只是把累加变成了累乘。
实例
// Created by www.facesoho.com on 15/11/9.
// Copyright © 2015年 小鸟启蒙. All rights reserved.
//
#include <stdio.h>
int main()
{
int i;
long double sum,mix;
sum=0,mix=1;
for(i=1;i<=20;i++)
{
mix=mix*i;
sum=sum+mix;
}
printf("%Lf\n",sum);
}
以上实例输出结果为:
2561327494111820313.000000

文人墨客
参考方法:
#include <stdio.h> #pragma warning(disable:4996) void compute(long int);//计算前N!和的子函数 int main() { long int number = 0; printf("求N!,请输入N;\n"); scanf("%ld",&number); compute(number);//调用子函数 //system("pause"); } void compute(long int number) { long int n = 1; long int sum = 0; long int i = 0; for(i = 0;i<number;++i) { n = n*(i+1);//计算当前的N! sum = sum + n;//计算前N!的和 if(i<number-1) printf("%ld!+",i+1); if(i == number-1) printf("%ld!=%ld\n",i+1,sum); } }文人墨客
参考方法:
#include <stdio.h> int main(){ int i,t,n; long long sum,temp; while(scanf("%d",&n)!=EOF){ sum=0; if(n==0 || n==1){ printf("1\n"); } else{ for(i=1;i<=n;i++){ temp=1; t=i; while(t){ temp=temp*t; t--; } sum+=temp; } } printf("%lld\n",sum); } return 0; }文人墨客
参考方法:
#include<stdio.h> double Fun(double n) { if(n == 0) return 1; else return n*Fun(n - 1); } int main(void) { double sum = 0, i; for(i = 1;i <= 20; i++) { sum += Fun(i); } printf("%lf\n",sum); return 0; }文人墨客
参考方法:
#include<stdio.h> #include<stdlib.h> long double jiecheng(int n)//计算阶乘 { if (n == 1) { return 1; } else { return (n*jiecheng(n-1)); } } int main() { long double sum = 0; for (int i = 1; i <= 20; i++) { sum = sum + jiecheng(i); } printf("sum=%Lf", sum); system("pause"); }文人墨客
参考:
#include <stdio.h> int main() { int i, j; double c; double sum = 0.0; for (i = 1; i <= 20; i++) { c = 1; for (j = 1; j <=i ; j++) { c *= j; } sum += c; } printf("1+2!+3!+...+20!的和为:%lf\n", sum); // system("pause"); return 0; }