⑴ 如何用c語言編寫N的階乘
#include
"stdio.h"
main()
{
int
n,i;
double
p=1;//這里用的是Double,不用Int,因為Int范圍太小
printf("請輸入一個數字:");
scanf("%d",&n);
for(i=2;i<=n;i++)
p*=i;
printf("n!shu=%lf ",p);
}
(1)c語言寫階乘變形擴展閱讀:
用Ruby求 365 的階乘。
def AskFactorial(num) factorial=1;
step(num,1){|i| factorial*=i}
return factorial end factorial=AskFactorial(365)
puts factorial
階乘有關公式
該公式常用來計算與階乘有關的各種極限。
此為斯特林公式的簡化公式。
⑵ C語言寫一個求階乘函數輸出結果
1 設計階乘函數。
按照數學定義,對於n的階乘,如果n為0,則返回1.
否則返回1*2*3*...*n的值。用循環實現。
2 在主函數中輸入要求階乘的值。
3 調用函數計算階乘。
4 輸出結果。
代碼:
intfac(intn)
{
intr=1;
inti;
for(i=2;i<=n;i++)
r*=i;
returnr;
}
intmain()
{
intn,r;
scanf("%d",&n);
r=fac(n);
printf("%d!=%d ",n,r);
}
⑶ C語言中如何編寫N的階乘
1、打開visual C++軟體,新建任務,滑鼠左鍵點擊文件,選擇C++ source file:
⑷ 用c語言編寫階乘
#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] %=10;
}
while(a[l]==0) l--;
}
for(i=l; i>=0; i--)
printf("%d", a[i]);
printf("\n");
}
看了 樓下兩個 用int 存儲 50!
感覺有點不可思議, 至少應該用double啊,用double雖然不能保證精度,但至少可以很接近結果。
3樓的 一句話:「老師說過,可以自已定義一個類型來表示更大的數。。。」
自己是可以定義,你可以定義任意類型。只不過需要你自己來實現。 50!這種問題 就相當於 大數 的操作。
網上可以下載到大樹類, 支持 大數的+ - * / 開平方, 開根號,(幾乎所有math里的函數)...。
⑸ c語言中for語句編寫階乘
為什麼要求30的價乘?數相當大啊~~~
簡單寫一個,希望符合要求哈~
#include
float
func(int
n){
if(n==1)
return
1;
return
(float)(n*func(n-1));
}
void
main(){
int
n;
printf("\nfactorial
of
:");
scanf("%d",&n);
printf("result
is
%.0f\n",func(n));
}
運行過程:
factorial
of
:30(用戶輸入要求價乘的數,這里我們輸入30)
result
is
⑹ 如何用C語言寫階乘
計算階乘,很容易int型變數放不下結果導致溢出錯誤。
#include<stdio.h>
voidmain(){doublea;intn,i;
scanf("%d",&n);a=1;for(i=1;i<=n;i++)a*=i;
printf("%d!=%.0lf ",a);
}
⑺ 用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語言寫階乘變形擴展閱讀:
在C語言中,有三種類型的循環語句:for語句、while語句和do
While語句。分別介紹如下:
for
for為當型循環語句,它很好地體現了正確表達循環結構應注意的三個問題:
⑴控制變數的初始化。
⑵循環的條件。
⑶循環控制變數的更新。
while:
while結構循環為當型循環(when
type
loop),一般用於不知道循環次數的情況。維持循環的是一個條件表達式,條件成立執行循環體,條件不成立退出循環。
while語句格式為:
while(條件表達式)
循環體
每次執行循環體前都要對條件表達式進行判斷。
參考資料來源:網路-循環語句
⑻ 如何用C語言編寫任意數的階乘
/*源程序: */
fac(int n)
{int t;
if(n==1)||(n==0) return 1;
else
{ t=n*fac(n-1);
return t;
}
}
main( )
{int m,y;
printf(「Enter m:」);
scanf(「%d」,&m);
if(m<0) printf(「Input data Error!\n」);
else
{y=fac(m);
printf(「\n%d! =%d \n」,m,y);
}
}
⑼ 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、不是直接輸入n!,需要一定的演算法才可以實現。具體方法是,首先打開編輯器,准備好空白的C語言文件: