❶ 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;
}