質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Java

    15842questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Eclipse

    1926questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

フィボナッチ数列を表示するプログラム

解決済

回答 5

投稿

  • 評価
  • クリップ 2
  • VIEW 2,441

yoppi07

score 21

フィボナッチ数列を1000まで表示するプログラムを作成しています。
つまり以下のように表示させたいです。
0 1 1 2 3 5 8...

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        // 最初の項
        int num0 = 0;
        int num1 = 1;
        int num2 = num0 + num1;
        System.out.print(num0 + "  ");
        System.out.print(num2 + "  ");

        //1000まで表示
        for (int i = 0; i < 1000; i++) {
            int a = num0++;
            int b = num1++;
            int c = num2++;
            System.out.print(num2 + "  ");
        }
    }
}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • LouiS0616

    2017/08/10 17:03

    ああ、学校の課題だったんですね... プログラミングの基礎の知識が決定的に欠如しているようです。時間がかかっても、資料をすべて読み直した方が良いですよ。

    キャンセル

  • yoppi07

    2017/08/10 17:09

    承知しました。

    キャンセル

  • mts10806

    2017/08/10 17:11

    課題であれば今まで学んできたことでカバーできる範疇であるはず。既に指摘があるとおり資料や教材の復習とそこからヒントを得る活動を最初にきちんとしておいたほうが今後の役に立ちます。

    キャンセル

回答 5

checkベストアンサー

+1

何かの課題でしょうか。。
1000以下のフィボナッチ数を表示すると解釈すれば良いですかね?

まずはフィボナッチ数の理解から入るのが良いかと思いますので、簡単に説明だけ。

 初期状態

f(0) = 0, f(1) = 1, f(2) = f(0) + f(1) = 1

 f(3)

f(2)の次のf(3)を求める式は、
f(3) = f(1) + f(2)
ですので、
f(3) = 1 + 1 = 2
となります。

 f(4)

同様に、求めたいものの前2つの和で求められるので、
f(4) = f(2) + f(3) = 1 + 2 = 3
となりますね。

 f(n)

n番目はどうすれば良いか。
fn = f(n-2) + f(n-1)
となります。

yoppi07さんのプログラムだと、下記の点を見直す必要があるかと思います。

  • フィボナッチ数を求める計算式が違う(int a = num0++;とかのところ)
  • 1000までのフィボナッチ数を表示するという条件が違う(for (int i = 0; i < 1000; i++)のところ)

何かの課題のようにも受け取れたので、プログラムでの回答は控えますが、探せばネットには転がっているかと思います。
中途半端な老婆心ですみません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/10 16:59

    ありがとうございます。
    ご指摘のとおり、学校での課題でございます。
    ヒントを元に頑張ってみます。

    キャンセル

+1

「Java フィボナッチ数列」でググれば結構出てきます。
例えば、以下のようなサイトを参考にすればどうでしょう?

Javaでフィボナッチ数列のアルゴリズムを考えてみよう 

どうしても自力でやるというのならこういうサイトは余り見ないほうが良いですが、ここに質問するくらいだからそういうこだわりはないのでしょうね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

一か所だけ指摘しておきますが... この部分。

int num2 = num0 + num1;

プログラムはこれを見て、
『あぁ、num2はnum0とnum1の和なんだな。適宜更新しておこう。』だなんて思ってくれません。

最低でも、ループ内で加算を行う必要があることを申し上げておきます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/10 17:03

    ありがとうございます。
    ループ外だとその時だけっていうことですよね。

    キャンセル

  • 2017/08/10 17:05

    ループ外だろうとループ内だろうと、そのときだけです。
    ループはただの繰り返しです。「そのときだけ」を毎周繰り返しているだけです。

    キャンセル

0

アルゴリズム入門編1:FizzBuzzとフィボナッチ数を学ぶ

結構丁寧に説明してくれています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/10 17:00

    失礼。。。
    先月は無料公開だったはずなんですけど、無料公開が終わってました^^;

    キャンセル

0

「1000個」出力しようとすれば、intlongでは桁が足りなくなります

幸い、JavaにはBigIntegerがありますので、1000個出力するにはそのような研鑽が必要となります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/10 20:55

    問題の意図は、フィボナッチ数列のうち1000以下のものを列挙するということだと思います。

    キャンセル

  • 2017/08/10 20:56

    「1000まで」と元のコードを見て、「1000個出力する」ものと解釈してしまいました。

    キャンセル

同じタグがついた質問を見る

  • Java

    15842questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Eclipse

    1926questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。