讓使用者輸入N值後計算,N!以及1!+...+N!的答案
從上面這邊我們知道 至少要用到三個變數
分別儲存N值、N!的答案、1!+...+N!答案
這邊範例把這三個變數分別叫做n ans1 ans2
可以把步驟拆成:輸入N→計算→輸出答案
計算部分又可以拆成N!以及1!+...+N!
而這兩個答案之間又有因果關係
就是把前面的結果再加上目前所計算出的階乘
例如N=3
就先算1!=1 計算總和=>1
再算2!=2 計算總和=>1+2=3
最後算3!=6 計算總和=>1+2+6=9
所以只要把N!的寫法解出問題就迎刃而解了
首先是要求使用者輸入N
程式可以寫成
n = inputbox("請輸入n")
不過因為n待會必須用來計算,所以只能是數值
所以我們加上val函數,避免使用者輸入其他資料造成計算上錯誤
n = val(inputbox("請輸入n"))
數學上我們知道N!=1*2*3*....*N
看到N個東西連乘就要想到用迴圈去達成
這時就可以寫成
ans1 = 1 For i = 1 To n ans1 = ans1*i Next i第一行我們先讓ans1初始值為1
然後再根據每跑一次迴圈i就增加1的方式去達成1*2*3*...*N
接著我們再把1!+...+N!的計算補上
根據上面的解說,作法就是在乘上下個數字之前
先把本次計算出的數值加到總和中
所以程式可以改成
ans1 = 1 For i = 1 To n ans1 = ans1*i ans2 = ans2+ans1 Next i
最後就是輸出的部分啦
Print n ; "! = " ; ans1 Print "1!+...+" ; n ; "! = " ; ans2