
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
というプログラムです。分かる方よろしくお願いします。
実行エラーです。
A 回答 (2件)
- 最新から表示
- 回答順に表示

No.2
- 回答日時:
現状では 0が来ると無限再帰になりますね。
----
If arg = 1 Then
Recur = arg
----
のところを
----
If arg <= 1 Then
Recur = 1
----
に変更してはいかがでしょうか。
No.1
- 回答日時:
「0! = 1 と約束されている」という事なので、1の時同様、argが0なら、1を戻しておしまいとしておくしかないのではないでしょうか。
Recur = arg * Recur(arg - 1) ← この部分が0に対しては適用できません(階乗の定義から外れる)
Wikipedia等でお調べ下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Excelマクロでセルに値が入力されたら実行する 5 2023/08/06 11:03
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
Null 値の使い方が不正です と...
-
マクロで"#N/A"のエラー行を削...
-
警告?の補足と条件分岐
-
レコード登録時に「演算子があ...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
マクロエラー 1004 1004 アプ...
-
文字列内で括弧を使うには
-
Excel vbaについての質問
-
VBAのリストボックスで、横スク...
-
String""から型'Double'への変...
-
PostgreSql & Perl でのインサ...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
【VBA】ワークブックを開く時に...
-
(perl)プログラムの先頭に記述...
-
VB6のプログラムをWIN7で使いたい
-
Excel vbs AppActivate エラー
-
Windows7で、Windows updateの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報