phfb.net
当前位置:首页 >> C语言如何算50的阶乘 >>

C语言如何算50的阶乘

#include<stdio.h>#define N 50 /*可以是任意一个数的阶乘,当然要计算机能够存的下*/ int main() { int a[100], l=0, i, j; for(i=0; i<100; i++) a[i]=0; a[0]=1; for(i=2; i<=N; i++) { for(j=0; j<=l; j++) a[j] *= i; l+=3; for(j=0; j<l; j++) if(a[j]>9) { a[j+1]+=a[j]/10; a[j] %=

一、double最大有效位数16位,50的阶乘老长了,C中数值类变量都不可能运算、表示出来,只能采用大数相乘的方法,自己写运算程序去实现了.二、你的程序太乱了 给你一个可运行的程序,但结果并不是准确的#include int main() { double

//阶乘计算函数 long sum (long k){ long sum=i; for(long i=1;i sum=sum*i; //实现阶乘 } return sum; }

刚答过一个大数阶乘的,精确算到10000!没问题#include <stdio.h>#define N 10000int main(){ static long int r[N] = { 1 }; int i, j,n; int k = 0, l = 0; printf("输入一个数求其阶乘\n"); scanf("%d", &n); for (i = 1; i <= n; i++) { for (j = 0; j <= l; j++) { r[j]

因为阶乘50太大了,变量存不下,所以最后显示0,如果你将阶乘数改小一点就没问题了,比如10或者将int型改成long long型,然后结果已%lld输出,但40、50的阶乘也无法容纳,因为结果太大了,20、30还可以

我以前的一个,可以满足你的要求#include #include #define MAX 40000int fac[MAX]= {1};int add[MAX]= {0};int top=1;void calculate(int n);void print();int main(){ int n=50;

f(n){if (n=1){return 1}elsereturn f(n-1)*n}

递归函数 fun(int n) { if (n==0) return 1; else return n*fun(n-1); } 只要主函数调用这个函数,即可计算阶乘.

#includemain(){int i,n,count=0,tem=1;scanf("%d",&n);for(i=1;i{for(j=1;jcount+=tem;tem=1;}printf("%d\n",count);}

#include <stdio.h>int main(){int a,i,sum=1;scanf("%d",&a);for(i=1;i<=a;i++){sum *=i;}printf("%d",sum);return 0;}这是一个完整的循环计算阶乘Demo

网站首页 | 网站地图
All rights reserved Powered by www.phfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com