n的階乘c語言程序
1. c語言n!怎麼求啊
1、求n!就是n的階乘首先打開vc++ 6.0軟體,准備一個新的c語言文件,命名為multiply.cpp,然後引入C語言基本庫,創建一個main函數:
2. 如何用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);
}
(2)n的階乘c語言程序擴展閱讀:
用Ruby求 365 的階乘。
def AskFactorial(num) factorial=1;
step(num,1){|i| factorial*=i}
return factorial end factorial=AskFactorial(365)
puts factorial
階乘有關公式
該公式常用來計算與階乘有關的各種極限。
此為斯特林公式的簡化公式。
3. c語言的求n的階乘的程序代碼。
用遞歸法求N的階乘
程序調用自身稱為遞歸( recursion).它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解.
遞歸的能力在於用有限的語句來定義對象的無限集合。
一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
long factorial(int n)
{
if(n == 1)
return 1;
else
return n*factorial(n-1);
}
int main(int argc,char *argv[])
{
int n = 0;
if(argc != 2)
{
printf("input error,exit!! ");
return -1;
}
n = atoi(argv[1]);
printf("%d! = %ld ",n,factorial(n));
return 0;
}
習題示例
題目
題目描述:
輸入一個正整數N,輸出N的階乘。
輸入:
正整數N(0<=N<=1000)
輸出:
輸入可能包括多組數據,對於每一組輸入數據,輸出N的階乘
樣例輸入:
4
5
15
樣例輸出:
24
120
1307674368000
AC代碼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 3000
//存儲每次階乘運算的結果
int str[MAX];
void calculateFactorial(int n);
int main()
{
int n;
while (scanf("%d", &n) != EOF) {
if(n == 0) {
printf("1 ");
} else {
calculateFactorial(n);
}
}
return 0;
}
void calculateFactorial(int n)
{
int i, j, temp, c, len;
memset(str, 0, sizeof(str));
str[1] = 1;
for (i = 2, len = 1; i <= n; i ++) { //循環與2,3,..n相乘
for (j = 1, c = 0; j <= len; j ++) { //str數組代表一個數,模擬與i相乘
temp = str[j] * i + c;
str[j] = temp % 10;
c = temp / 10;
}
while(c > 0)
{
str[j ++] = c % 10;
c /= 10;
}
len = j - 1;
}
for (i = len; i >= 1; i --) {
printf("%d", str[i]);
}
printf(" ");
}
/**************************************************************
Problem: 1076
User: wangzhengyi
Language: C
Result: Accepted
Time:2150 ms
Memory:916 kb
4. n!,就是的階乘,用c語言怎麼做
C語言中對於階乘通常採用循環的方式進行計算
循環的方式有while循環,for循環等
這里採用for循環進行舉例,程序代碼如下:
int i,sum=1;
for(i=1;i<=n;i++)
{
sum=sum*i;
}
4.上述的變數sum在循環結束後得到的結果即為n!,不過這是在n比較小的情況下,如果需要計算更大的n的階乘,那麼只需將變數sum的類型進行相應調整即可