1樓:匿名使用者
用!表示階乘,不重置的話,計算出來的是1!+1!
2!+1!2!
3!+1!2!
3!4!+1!
2!3!4!
5!, 所以是34863。因為不重置,每次都在前一項的基礎上乘了一個i!
,但是我們只需要在前一項的基礎上乘以i就行了,所以多乘了。重置的話,雖然是正確的,但是多此一舉嘛,搞什麼二重迴圈?覺得cpu太快了麼?
已經算好4!了,算5!的階乘,只需要在4!
上乘以5就行了,非得重置為1,然後再乘1 2 3 4 5,太浪費了……正常的寫法應該是:int n=0, a=1;for (int i=1; i<=5; i++)
2樓:匿名使用者
在這段**中,外層迴圈的目的是依次列舉從1到5一共5個數字,存入變數j;內層迴圈的作用是求j的階乘,結果儲存為變數a,然後把a累加到變數n。求階乘需要從1開始,沿自然數列依次向上乘,結果累乘到變數a,所以每次內層迴圈開始時變數a必須被重置成1,否則求下一個數字的階乘時就不是從1開始計算了。希望lz能明白。
3樓:匿名使用者
這個方法貌似麻煩了之所以重至 是因為裡面每次迴圈需要重新算一次階乘所以要把乘數歸1 算出來的結果才對但是這樣寫 就有點麻煩了 其實一道迴圈就夠了下面貼下我的** 希望我的回答對你有幫助 如果有不懂可以繼續問我如果你滿意我的回答 請選為滿意答案 #include void main()
cout< 程式設計求階乘的問題? 4樓:平寄竹焦羅 這個方法貌似麻煩了 之所以重至 是因為裡面每次迴圈需要重新算一次階乘 所以要把乘數歸1 算出來的結果才對 但是這樣寫 就有點麻煩了 其實一道迴圈就夠了 下面貼下我的** 希望我的回答對你有幫助 如果有不懂可以繼續問我 如果你滿意我的回答 請選為滿意答案 #include void main() cout< 5樓:茹青芬郝黛 在這段**中,外層迴圈的目的是依次列舉從1到5一共5個數字,存入變數j;內層迴圈的作用是求j的階乘,結果儲存為變數a,然後把a累加到變數n。 求階乘需要從1開始,沿自然數列依次向上乘,結果累乘到變數a,所以每次內層迴圈開始時變數a必須被重置成1,否則求下一個數字的階乘時就不是從1開始計算了。 希望lz能明白。 6樓:示煙愛雪 外層開始第一次迴圈j=1 執行a=1 ~~內層開始第一次迴圈i=1 ~~執行a=a*i=1*1=1 執行n=n+a=0+1=1 外層開始第二次迴圈j=2 執行a=1 ~~內層開始第一次迴圈i=1 ~~執行a=a*i=1*1=1 ~~內層開始第二次迴圈i=2 ~~執行a=a*i=1*2=2 執行n=n+a=1+2=3 外層開始第三次迴圈j=3 執行a=1(如果不執行的話a任然等於2) ~~內層開始第一次迴圈i=1 ~~執行a=a*i=1*1=1(如果剛才不執行的話a=2)~~內層開始第二次迴圈i=2 ~~執行a=a*i=1*2=2(如果剛才不執行的話a=4)~~內層開始第三次迴圈i=3 ~~執行a=a*i=2*3=6(如果剛才不執行的話a=12)執行n=n+a=3+6=9(如果剛才不執行的話n=15)外層開始第四次迴圈j=4 ………… 後面的就省略不寫啦 c語言 程式設計實現求n!要求用定義求階乘的函式 7樓:飛喵某 1、開啟vs2017軟體,新建c語言的工程,首先開頭引入標頭檔案,然後呼叫先呼叫一下求階乘的函式和空的主函式,最下方定義prime函式用來求階乘: 2、主函式中用scanf函式接受使用者輸入的的數字,接著將輸入的數傳入處理階乘的函式中完成計算,最後輸出列印結果。prime函式有一個引數,首先判斷是否為正數,然後用prime函式自身乘以引數s,最後返回值即可完成: 3、將程式編譯執行,彈出視窗輸入任意的數,計算階乘;這裡輸入7,得到結果是5040。以上就是c語言求階乘的方法: 8樓:文化廚子 #include long fac(unsigned n) else }int main() 注意:0的階乘是1,不是0,因為階乘表示的是全排列,是從n箇中取出n個的所有的取法總數。所以當n==0或者n==1時返回1。 9樓:匿名使用者 本人小白,多多指教 #pragma warning(disable:4996) //vs07防報錯 #include #include int factorial(int n) return resulta; }int sum(int n) return resultb; }int main() 還可以寫成: #pragma warning(disable:4996) #include #include int sum(int n) return resultb; }int main() 寫了兩個自定義函式: factorial()用來計算階乘,sum()用來計算累加值。 factorial() 第一部分: n!=1x2x3...xn。設resulta=1x2x3....xn。用i表示第幾次計算。 數學計算的詳細步驟: 當i=1時, 1x1=1 第1次計算 當i=2時, 1x2=2 第2次計算 當i=3時, 2x3=6 第3次計算 當i=4時, 6x4=24 第4次計算 當i=n-1時 ax(n-1)=b 第n-1次計算 當i=n時, bxn=c 第n次計算 第二部分: 在c語言中乘法計算例如:int a=1;a=a*2意思是將a的原來的值(舊值)1x2將結果(新值)賦值給a, a的值變為2.再進行a=a*3意思就是將a原來的值2x3將結果(新值)再次賦值給a,a的值變為6. 上面可以看出:(resulta簡寫為a) i=1時,(a的舊值)1xi=(a的新值)1 。第1輪結束,a的值從舊值1變成了新值1. (第一輪中a的新值1相對在第二輪中,看做是a的舊值,依次類推) i=2時,(a的舊值)1xi=(a的新值)2。 第2輪結束,a的值從舊值1變成了新值2. i=3時,(a的舊值)2xi=(a的新值)6。 第3輪結束,a的值從舊值2變成了新值6. i=4時,(a的舊值)6xi=(a的新值)24。第4輪結束,a的值從舊值6變成了新值24. i=n時,(a的舊值)bxi= (a的新值)b。 第n輪結束,a的值從舊值$變成了新值$(這個新值就是最終值). 第三部分:上面可以看出: 計算a的最終值:進行了n輪,迴圈計算:a的舊值xi=a的新值。 將a的舊值xi=a的新值,寫成**的形式:resulta=resulta*i;即resulta*=a; 從第二部分還能看出:i的初值是i=1;i的範圍是i<=n;i的變化是每次自身+1即i++;迴圈計算->for語句。 resulta初值是1. int i,resulta=1; for(i=1;i<=n;i++) sum() 第一部分: 從1!+2!+3!....+n!可以看出一共有n個階乘。設resultb=1!+2!+3!....+n!(resultb簡寫b) 當n=1,只有1!,0+1!=1 只有1次計算 。當n=2時有1!,2!,先計算0+1!=1再1+2!=3,有兩次計算。 當n=3,有1!,2!,3!。先算0+1!=1再1+2!=3再3+3!=9,有3次計算,依次類推 當n=n,有1!,2!.....n!。會有n次計算。用i表示第幾次計算。 換種寫法: 當i=1時,第一次計算 0+1!值=0+1=1 當i=2時,第二次計算 1+2!值=1+2=3 當i=3時,第三次計算 3+3!值=3+6=9 當i=4時,第四次計算 9+4!值=9+24=33 當i=n-1時第n-1次計算 e+(n-1)!值=a 當i=n時,第n 次計算 a+n!值=a+b=resultb 根據c中加法的意思: i=1, b舊+ factorial(1)=b新 呼叫factorial() i=2, b舊+ factorial(2)=b新 i=n, b舊+ factorial(i)=b新 第二部分: 寫成**:resultb=resultb+ factorial(i), 1的初值i=1;i的範圍i<=n;i每次自身加一i++;迴圈計算->for語句。 int i,resultb=0; for(i=1;i<=n;i++){ resultb+= factorial(i) 10樓:匿名使用者 計算階乘的c#**: for (;;) console.writeline("的階乘值為", num, jc); console.writeline("你是否還需要使用此階乘計算器,1-是,2-否"); int numb = int.parse(console.readline()); if (numb == 1) if (numb == 2) }console.readkey(); 11樓:匿名使用者 long fact(long n) }void main() 12樓:童末 #include #include using namespace std; int main()cout< return 0;} vb程式設計求n的階乘 程式設計程式求n的階乘的計算實現方法,其中n值由使用者輸入 13樓:匿名使用者 #include int jiecheng(int n) return n*jiecheng(n -1); }int main() 執行結果: c語言程式設計 輸入n 求n的階乘 14樓:修羅丶清 您好,bai我們下構思下程式的基du礎, 讓使用者自定 zhi義輸入一個數作為階乘數dao, 當超過20時,輸出內「n is too big」. 我們需要用容到if函式,以下為詳細過程。 #include using namespace std; int main() if (n > 20) cout << "n is too big" << endl; else cout 15樓:匿名使用者 思路:所謂n的階乘就是從1到n的累積,所以可以通過一個for迴圈,從1到n依次求積即專可。 參考**: #include "stdio.h" int main() /*執行結果:(例如求5的階乘) 5120*/ 高寵 小霸王 include include stdio.h int input int min,int max void main j for i 2569 s i len if n m printf d n else printf a d d n,m if len 20 for i len 1 ... 先寫一個求階乘的函式 private function factorial byval n as integer as long dim i as integer,l as longl 1 for i 1 to n l l i next factorial l end function 新增一個按鈕... dim a 0 to 3 private sub command1 click index as integer list1.additem index end sub private sub command2 click dim n,m m 0 n 0 for i 0 to 3 for j 0 t...
c語言程式設計n的階乘,C語言程式設計 N的階乘
“求1到10的階乘之和”用vb怎麼程式設計序
急求 VB程式設計題目,謝謝,求1道小學VB程式設計題目 謝謝