用C语言求100的阶乘
void main()
{
long i,j,x,num=0;
for(i=1;i=100;i++)
{
x=1;
for(j=1;j=i;j++)
x*=j;
num+=x;
}
printf(“%ld”,num);
getch();
}
c语言用do while 语句写1x 2x 3 x 4 ….x 100,就是100的阶乘,怎么
你好,100的阶乘结果大概有150位,用简单的do while语句是无法计算准确的结果的(结果最后100多位全是0,而正确的结果0也就20个左右)。
程序1:
#include stdio.h
#define M 1000
main()
{
int a[M], i, n, j, flag = 1;
printf(“n=”);
scanf(“%d”,n);
printf(“n!=”);
a[0] = 1;
for(i = 1; i M; i++)
a[i] = 0;
for(j = 2; j = n; j++)
{
for(i = 0; i flag; i++)
a[i] *= j;
for(i = 0; i flag; i++)
if(a[i] = 10)
{
a[i+1] += a[i]/10;
a[i] = a[i] % 10;
if(i == flag-1)
flag++;
}
}
for(j = flag – 1;j = 0; j–)
printf(“%d”, a[j]);
}
程序2:
#include stdio.h
#include string.h
void f(int n)
{
void cheng(char s[],int n);
void jia(char s1[], char s2[]);
int jinwei=0, bai, shi, ge, num;
char b[1000], c[1000];
static char a[1000]={“1”};
strcpy(b,a);
strcpy(c,a);
num=strlen(a);
bai = n/100;
shi = n%100/10;
ge = n%10;
cheng(a, ge);
if(shi)
{
cheng(b, shi);
num=strlen(b);
b[num]=48;
b[num+1]=0;
jia(a, b);
}
if(bai)
{
cheng(c, bai);
num=strlen(c);
c[num]=48;
c[num+1]=48;
c[num+2]=0;
jia(a, c);
}
printf(“%d%d%d!=”,bai,shi,ge);
puts(a);
}
void jia(char s1[], char s2[])
{
int i, m, n, k, jinwei=0;
m=strlen(s1);
n=strlen(s2);
if(m=n)
{
for(i=n; i=0; i–)
s2[i+m-n]=s2[i];
for(i=0; im-n; i++)
s2[i]=48;
}
else
{
for(i=m; i=0; i–)
s1[i+n-m]=s1[i];
for(i=0; in-m; i++)
s1[i]=48;
}
for(i=m-1; i=0; i–)
{
k=s1[i]+s2[i]+jinwei-96;
s1[i]=k%10+48;
jinwei=k/10;
}
if(jinwei)
{
for(i=m; i=1; i–)
s1[i]=s1[i-1];
s1[0]=49;
s1[m+1]=0;
}
}
void cheng(char s[], int x)
{
int i, m, n, jinwei=0;
n=strlen(s);
for(i=n-1; i=0; i–)
{
m=(s[i]-48)*x+jinwei;
s[i]=m%10+48;
jinwei=m/10;
}
if(jinwei)
{
{
for(i=n; i=1; i–)
s[i]=s[i-1];
s[0]=jinwei+48;
}
s[n+1]=0;
}
}
void main()
{
int i, n;
printf(“请输入1–150之内的整数!”);
scanf(“%d”,n);
if(n0n=150)
for(i=1; i=n; i++)
f(i);
}
C语言怎样求1到100的阶乘和
我们经常会使用C语言进行各种数学运算,那么如何利用C语言求1到100的阶乘和呢?下面我给大家演示一下。
工具/材料
Dev C++
01
首先打开Dev C++软件,新建C语言控制台项目,如下图所示
02
然后在main.c文件中输入计算阶乘的逻辑代码,如下图所示
03
接下来我们编译写好的C语言文件,如下图所示
04
最后执行C语言文件,我们就可以得到1到100的阶乘之和了,如下图所示