- ベストアンサー
VB 2005においての0から12までの値nを入力し、nと階乗n!値を
VB 2005においての0から12までの値nを入力し、nと階乗n!値を表示させなさい。という問題が出ました。 色々調べてみたのですが、いまいち、ばらばらで要領を得ません。 プログラムに詳しい方どうか教えてくださいよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- Nの階乗
この問題がどうすればいいのかまったくわかりません。 考え方を教えて下さい。 ------------------------------------------------ まず、プログラムの中で一つの整数N(1<=N<=100)を入力させる。そして、一桁ずつを一つの整数配列の別々の箱に入れる表現を用いて、Nの階乗を計算し、その結果を表示するプログラムを作れ。例えば1258をdat[4]=1, dat[3]=2, dat[2]=5, dat[1]=8と表す。アルゴリズムには、ループ(for文、while文、repeat文のいずれか)を用いなさい。
- ベストアンサー
- その他(プログラミング・開発)
- 0から12までの値nを入力し、nと階乗n!の値を表示しなさいという問題
0から12までの値nを入力し、nと階乗n!の値を表示しなさいという問題です。 前にこのプログラムで複数個、同時には計算できない問題を自分で解決したのですがこんどは0が計算できないようです。 System.StackOverflowException' のハンドルされていない例外が WindowsApplication1.exe で発生しました。 とでます Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n As Long Dim f As Long n = CLng(TextBox1.Text) TextBox2.Text = CStr(Recur(n)) End Sub Public Function Recur(ByVal arg As Long) As Long ←ここにエラーが If arg = 1 Then Recur = arg Exit Function End If Recur = arg * Recur(arg - 1) End Function End Class というプログラムです。分かる方よろしくお願いします。 実行エラーです。
- 締切済み
- Visual Basic
- 0から12までの値nを入力し、nと階乗n!の値を表示しなさいという問題
0から12までの値nを入力し、nと階乗n!の値を表示しなさいという問題ですが、一つの数字しか計算が出来ません 5と12の場合は String "5 12" から型 'Long' への変換は無効です。と出てきてしまいます。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n As Long Dim f As Long n = CLng(TextBox1.Text) ←ここにエラーが出ます。 TextBox2.Text = CStr(Recur(n)) End Sub Public Function Recur(ByVal arg As Long) As Long If arg = 1 Then Recur = arg Exit Function End If Recur = arg * Recur(arg - 1) End Function End Class というプログラムです。分かる方よろしくお願いします。 実行エラーです。
- ベストアンサー
- Visual Basic
- "n!"(階乗)の数字列の生成
ある"n"(数字)を入力すると、"n!"(階乗)通りの数字列を生成するプログラムを作りたいのですが、 どのような考え方でプログラムを作成すればよいのかわかりません。 例えば、"7"と入力すると 1,2,3,4,5,6,7 1,2,3,4,5,7,6 1,2,3,4,6,5,7 ・ ・ ・ 7,6,5,4,3,2,1 のように7!通りの数字列を出力されるようにしたいのです。 アドバイスを頂けないでしょうか。よろしくお願いします。
- 締切済み
- Visual Basic
- VBのコードを教えてください;;
私は今VBを勉強しているのですが行き詰ってしまってどうしても この問題の考え方とコードが分かりません;誰か御助言くださいませ; ●1+2+3+…+nの合計が1000を超えたときのnの値と、その合計を表示させる。 ●n(ただし12までの数)の値を入力しnとn!の値を表示させる n!=1×2×…×n ちなみにVisualStdioを使っています。分かりやすいコードを教えて 頂ければ幸いです。どうぞ宜しくお願いします。
- ベストアンサー
- Visual Basic
- パソコンで階乗を計算
現在、fortran90を使って階乗を計算するプログラムを作っております。 プログラム内容は、(n !を求めえるプログラム) n=0 do i=1,100 n=n*i enddo このプログラムを実行すると、12!までは予想された値が得られるのですが、13!以降は電卓で計算した値と遙かに異なる値が得られました。 このプログラムは間違っているとは思えないですが、電卓の計算とパソコンの計算が異なる結果になった理由が分かりません。 どなたか、ヒントや参考情報だけでもいいので教えてください。 ちなみにパソコンによる計算結果は、 i n 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 11 39916800 12 479001600 13 1932053504 14 1278945280 15 2004310016 16 2004189184 17 -288522240 18 -898433024 19 109641728 20 -2102132736 21 -1195114496 22 -522715136 23 862453760 24 -775946240 25 2076180480 26 -1853882368 27 1484783616 28 -1375731712 29 -1241513984 30 1409286144 31 738197504 32 -2147483648 33 -2147483648 34 0 35 0 36 0 36の階乗以降0です。 計算結果が正となるが、結果が違うモノ(例えば、13!や31!)は単精度で約10桁程度しか有効数字が得られないためであると思われるのですが、負になったり、0になる理由が分かりません。
- 締切済み
- その他(プログラミング・開発)
お礼
解答ありがとうございます。自分でもう少しやってみようと思います