階乖編程
① n的階乘編程怎麼寫
c語言實現,是最簡單的方法:
#include<stdio.h>
void main()
{
int i=0;
int a=1;
int n=0;
printf("請輸入一個正整數n\n");
scanf("%d",&n);
do
{
i*=a;
a++;
}
while(a<=n);
printf("%d",n);
}
VB或VBS
Option Explicit
On Error Resume Next
Dim intInputValue
Dim iDim intX
' 忽略數值check
intInputValue = CInt(inputbox("請輸入整數n,計算n的階乘", "n的階乘"))
intX = 1
For i = 1 To intInputValue Step 1
intX = intX * i
Next
msgbox CStr(intX),,"n的階乘1"
② C語言中如何編程計算階乘
常見的有兩種:
遞歸版本:
intFac(intn){
if(n==0)return1;
returnn*Fac(n-1);
}
還有一種是循環版:
intans=1;
for(inti=1;i<=n;i++)ans*=i;
測試方法:
#include<stdio.h>
intFac(intn){
if(n==0)return1;
returnn*Fac(n-1);
}
intmain(){
intn;
while(scanf("%d",&n)!=EOF){
intans=1;
for(inti=1;i<=n;i++)ans*=i;
printf("%d%d ",ans,Fac(n));
}
return0;
}
有個值得注意的地方:階乘時,數增大的很快,在n達到13時就會超過int的范圍,此時可以用long long或是 __int64來存儲更高精度的值,如果還想存儲更高位的,需要用數組來模擬大數相乘。
③ C語言編程 輸入N 求N的階乘
輸入一個正整數n,輸出n!*/#include <stdio.h> //編譯預處理命令
int factorial(int n); //函數聲明
int main(int argc, char const *argv[]) //主函數
{
int n; //變數定義
scanf("%d", &n); //輸入一個整數
printf("%d
", factorial(n)); //調用函數計算階乘
return 0;
}int factorial(int n) //定義計算n!的函數
{
int fact = 1;
for (int i = 1; i <= n; ++i)
{
fact = fact*i;
}
return fact;
}
拓展資料
特點
1. C語言是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2.C語言是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大。
4. C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX、LINUX等等;也適用於多種機型。C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。
④ 跪求階乘計算編程
這個是我在vs2008下寫的,運行成功,輸入5輸出結果3 0 2 1,希望對你有幫助#include "stdafx.h"
#include<stdio.h>
#include<malloc.h>int _tmain(int argc, _TCHAR* argv[])
{
int n,sum=1,b=0; //b用來存放這個數一共有幾位
printf("輸入:\n");
scanf("%d",&n);
for (int i=n;i>0;i--)//計算出這個數的階乘存放到sum里
{
sum=sum*i;
}
int temp=sum; while(temp>0) //求出這個數是幾位數,記錄在b中
{
temp=temp/10;
b++;
}
int *a;
a=(int*)malloc(sizeof(int)*(b+1));//開辟動態數組
a[0]=b; for (int i=b;i>0;i--) //將sum處理,各個位放到對應數組位置
{
int m=1;
for(int j=i-1;j>0;j--)
{
m=m*10;
}
a[i]=sum/m;
sum=sum%m;
}
for (int i=0;i<b+1;i++)//輸出數組
{
printf(" %d",a[i]);
}
return 0;
}
⑤ 100的階乘在C語言中怎麼編程(要求用while和for兩種方法)
#include<stdio.h>
intmain()
{
inta=100;
doublenum=1.0;
//while循環相乘實現階乘
while(a>0)
{num*=a;
a--;
}
printf("100!的結果:%le ",num);
//for循環相乘實現階乘
num=1;
for(a=1;a<=100;a++)
{num*=a;}
printf("100!的結果:%le ",num);
return0;
}
⑥ java里1到10的階乘相加編程怎麼做
java里1到10的階乘相加編程方法如下:
public class Factorial{ //類
public static void main(String [] args){ //主方法
int a=1; //定義一個變數a
int sum=0; //定義一個變數sum,把和存放在sum里
for(int i=1;i<11;i++){ //做1-11循環
a=1; //每次a都從1開始
for(int j=1;j<=i;j++){ //求每個數的階乘
a=a*j;
}
sum=a+sum; //每個數的階乘求好後都加入sum
}
System.out.println(sum); //輸出和sum
}
}
Java是一種可以撰寫跨平台應用程序的面向對象的程序設計語言。Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。
⑦ 求n的階乘編程n>=1000000000怎麼辦
當n非常大時,例如 n>=1000000000,直接用遞歸或者循環來進行n的階乘計算存在兩個問題,一個是時耗增加,一個是數據上溢。
有一個改進的斯特林公式,直接計算結果,並且精度較高。
公式如圖:
即:
1000000000! =9.90460616867525*10^8565705522
⑧ 用c語言編程,求從1的階乘一直加到20的階乘。
1、首先打開C語言編輯器,新建一個c語言的文件,導入頭文件並設置一個主函數:
⑨ 編程求階乘的問題
在這段代碼中,外層循環的目的是依次枚舉從1到5一共5個數字,存入變數j;內層循環的作用是求j的階乘,結果保存為變數a,然後把a累加到變數n。
求階乘需要從1開始,沿自然數列依次向上乘,結果累乘到變數a,所以每次內層循環開始時變數a必須被重置成1,否則求下一個數字的階乘時就不是從1開始計算了。
希望LZ能明白。
⑩ C語言一到十的階乘的和怎麼編程
C語言一到十的階乘編程方法:
1.記一個變數sum=0,用於累加。
2.記一個變數fact=1,用於累乘。
3.定義i從1到10循環。
4.每次循環將i累乘至fact,即fact=fact*i; // fact此時等於i的階乘,類似於6!=5!*6。
5.每次循環將fact累加至sum,即sum=sum+fact; //sum此時就是1到i的階乘的和。
程序最後,將sum輸出,就是你要的結果了。
要學會編程,一定要有自己的思路。直接給你代碼,但是你還是不知其所以然的話,等於沒用。
如果我沒理解錯的話,你現在要做的是計算1!+2!+3!+...+10!
這個世界上,絕大多數的程序,都是可以手算出來的,區別在於花費的時間不同。像這種只要完成九年義務教育就可以做出來的數學題,我現在讓你手算,你也能很快算出來。
總結如下:
那現在,如果讓你試著手算一下,會發現,你其實並不會呆板地去死算,你會偷懶走捷徑。
比如,你在計算完5!之後,再去計算6!的時候,你就不會從頭從1一直乘到6了,而是直接用已經算過的5!乘以6就可以了。
然後等你把1!到10!全算出來的話,其實也只是做了9次乘法而已,剩下的,就只要再做9次加法就好了。所以這個程序的本質就是累乘和累加。