A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
★アドバイス
・フィボナッチ数列の再帰関数は出来ましたね。
>0,1,1,2,3,5,8・・・と表示できるのかがわかりません。
↑
こんなにきれいには表示できないと思います。
何も printf() を入れなくてもよいのでは。
・ちょっと試行錯誤してみましたが意外に難しいですね。
下のサンプルで我慢して。
サンプル:
#include <stdio.h>
// フィボナッチ数列
int fib( int n )
{
if ( n == 0 ) return 0;
if ( n == 1 ){printf("\n1");return 1;}
n = fib(n - 1) + fib(n - 2);
printf( " + %d", n );
return n;
}
// メイン関数
int main( void )
{
// フィボナッチ数列
printf( "\nfib = %d\n", fib(9) );
return 0;
}
No.4
- 回答日時:
アドバイス。
http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/ …
Cじゃないけど,Tiny Basicのプログラムを参考にしてみたらもっとわかりやすいかも?
#『使うべきではない』とか書かれているのが気になるが(^^;;
宿題なら仕方ないかなあ・・・
No.3
- 回答日時:
★アドバイス
・フィボナッチ数列の代わりに 1 ~ n 番目までの数を加算するサンプルを載せます。
もちろん再帰的に処理する関数です。
これを参考に『フィボナッチ数列』の関数 int fib(int n) を作成して下さい。
・それでは下にサンプルを載せておきます。
サンプル:
#include <stdio.h>
// 1~n 番目までを再帰処理で加算する関数
int func_sum( int n )
{
if ( n > 0 ){
printf( "%d + ", n );
return n + func_sum( n - 1 );
}
else{
printf( "%d\n", n );
return 0;
}
}
// メイン関数
int main( void )
{
// 1~10 までを加算
printf( "sum = %d\n", func_sum(10) );
return 0;
}
その他
・動作を分かりやすくするために func_sum() 関数に printf() 関数を使っています。
実際に実行してみて動作の確認をして下さい。
表示される内容から再帰動作で 1 ~ n 番目の数の加算が分かると思います。
これを参考にして『フィボナッチ数列』の再帰関数を作ってみて下さい。
・以上。
この回答への補足
こんな感じで作ってみたんですけど、何処にprintf()を入れれば
0,1,1,2,3,5,8・・・と表示できるのかがわかりません。
よろしくお願いいたします。
#include <stdio.h>
int fib(int);
main()
{
printf("fib = %d\n", fib(10));
}
int fib(int n)
{
if(n == 0) return 0;
if(n == 1) return 1;
return fib(n - 1) + fib(n - 2);
}
No.2
- 回答日時:
> int f(0) = 0,f(1) = 1;
>
> f(n) = f(n - 1) + fib(n - 2);
fib関数以外にf関数も登場していますね。f関数は不要です。
数列の1番目:1(固定)
2番目:1(固定)
3番目:2(1番目+2番目)
4番目:3(2番目+3番目)
5番目:5(3番目+4番目)
6番目:8(4番目+5番目)
7番目:13(5番目+6番目)
8番目:21(6番目+7番目)
9番目:34(7番目+8番目)
10番目:55(8番目+9番目)
という結果を得るために、fib関数では呼び出し元に
どういう値を返す必要があるか、検討してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
C言語 エラーの原因がわからな...
-
C++でvectorにテキストファイル...
-
実数の整数部,小数部の取得
-
C言語
-
PowerShellがうまくいかない
-
int型の変数値をバイト列として...
-
「{ } で囲むだけ」は正しい?
-
if と配列の組み合わせ
-
【C++】関数ポインタの使い方
-
エラー 添字が付けられた値が、...
-
VB.NETからC++のdll連携(double)
-
ColorをRGBで指定する方法
-
[C言語] 関数を利用する計算
-
#define _CRT_SECURE_NO_WARNIN...
-
152+483×769 = 967×384+251 ...
-
ファイルから読みこむ方法
-
構造体にたいして、ビット演算...
-
#include <stdio.h> int main(v...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
AtCoderABC135の問題Cについて
-
C言語 エラーの原因がわからな...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
ラップ関数とはどんなものですか?
-
if と配列の組み合わせ
-
return 1L
-
read関数をノンブロッキングで...
-
(int *)の意味
-
std::set<int> で、ある値が何...
-
Win32APIで作るコンボボックス...
-
C++でvectorにテキストファイル...
-
「{ } で囲むだけ」は正しい?
-
足して100になるような乱数のア...
-
Arduinoのプログラムにエラーが...
-
課題でつまってます・・・
おすすめ情報