❶ c语言如何求一个数的阶乘
n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。
参考代码:
#include "stdio.h"
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=s*i;
printf("%d ",s);
return 0;
}
/*
运行结果:(例如求5的阶乘)
5
120
*/
(1)c语言求1到12的阶乘扩展阅读:
return用法:
return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:
int sum(int i,int j)
{
return i+j;
printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");
}
main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}
❷ C语言,求1到20阶乘,初学者,求帮助!
int i,j,n;
double sum=0;
double a[20]={1};
j=0;
while(j<=19)
{
i=1;
while(i<=(j+1))
{
if(j==0)
a[j]=1;
else
a[j]=a[j-1]*i;
i=i+1;
}
j=j+1;
}
for(n=0;n<=19;n++)
sum=sum+a[n];
printf("%lf",sum);
他们的答案不对,你测试下我的,你有个地方写错了
❸ 1到20阶乘的和用c语言表达
#include <stdio.h>
long jiecheng(int x)
{
long int i,k=1;
for(i=1;i<=x;i++)
k=k*i;
return k;
}
int main()
{
long int j,k=0;
int i;
for(i=1;i<=20;i++)
{
j=jiecheng(i);
k+=j;
}
printf("%ld ",k);
}
(3)c语言求1到12的阶乘扩展阅读:
使用其他方法实现求1到20阶乘的和:
public class Main{
public static void main(String[] args){
int i,j;
int sum=0;
int a=1;
for(i=1;i<=20;i++){
for(j=1;j<=i;j++){
a*=j;
}
sum+=a;
}
System.out.print("sum=1!+2!+3!+...+20!="+sum);
}
}
❹ 用c语言for循环求1到10阶乘
void
main()
主函数
{
int
i,a=1;
定义整形变量i,a(a初值为1)
int
sum
=0;
定义整形变量sum
初值为0
for(i
=
1;i<=10;i++)
设i的值为1,当i小于等于10成立时跳出答案,不成立,i的数值加1
{
a
=
a
*i;
a=a乘以i
sum
=
sum
+
a;
sum记录求和
}
printf("1到10的阶乘和是
%d",sum);
输出结果
end
结束
}
❺ c语言求1到n阶乘的和用递归
1、打开vc6.0,新建一个vc项目,添加头文件,添加一个空的main函数,这里先定义一个用来求阶乘的函数,函数的参数为i,阶乘就是不断的和前面的一个数相乘,这里就是不断和fact函数相乘,之后编写主函数的内容:
❻ c语言算阶乘,不知道为什么只能算对1到12的阶乘。求教
printf("%lld\r\n" , t)
试试 这样
~~~~~~~~~~
❼ 用C语言编写1到10的阶乘
#include<stdio.h>
int main()
{
int a=1,i;
for(i=1;i<=10;i++)
a=a*i;
printf("10的阶乘=%d",a);
return 0;
}
(7)c语言求1到12的阶乘扩展阅读:
在C语言中,有三种类型的循环语句:for语句、while语句和do While语句。分别介绍如下:
for
for为当型循环语句,它很好地体现了正确表达循环结构应注意的三个问题:
⑴控制变量的初始化。
⑵循环的条件。
⑶循环控制变量的更新。
while:
while结构循环为当型循环(when type loop),一般用于不知道循环次数的情况。维持循环的是一个条件表达式,条件成立执行循环体,条件不成立退出循环。
while语句格式为:
while(条件表达式)
循环体
每次执行循环体前都要对条件表达式进行判断。
参考资料来源:网络-循环语句
❽ C语言求阶乘
其实这个只能算到12的阶乘,因为13的阶乘等于6227020800,它已经大于2的31次方了,也就是超过了int所能表示的最大值了(溢出),所以你可以把int
改为double.
#include
<stdio.h>
#include
<stdlib.h>
double
f(int
n)
{
if(n==0||n==1)
return
1;
return
n*f(n-1);
}
int
main()
{
int
n,k,i;
printf("请输入一个数:");
scanf("%d",&k);
for(i=1;i<=k;i++)
{
printf("第%d个数为:",i);
scanf("%d",&n);
printf("%d!=%f\n",n,f(n));
}
}
我把你写的稍微改了一下,你看看。
❾ 用c语言编程,求从1的阶乘一直加到20的阶乘。
1、首先打开C语言编辑器,新建一个c语言的文件,导入头文件并设置一个主函数:
❿ c语言求1到10阶乘之和,如题,输出结果是12,不知道怎么改
#include <stdio.h>
unsigned long long fact(int n);
int main(void)
{
int i;
unsigned long long num=1;
for(i=2;i<11;i++)
num+=fact(i);
printf(" 从 1 到 10 的阶乘之和为:%llu
",num);
return 0;
}
unsigned long long fact(int n)
{
unsigned long long ans;
for(ans=1;n>1;n--)
ans*=n;
return ans;
}