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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

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

Eclipse

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

Q&A

解決済

5回答

14128閲覧

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

yoppi07

総合スコア30

Java

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

Eclipse

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

1グッド

2クリップ

投稿2017/08/10 07:39

フィボナッチ数列を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 + " "); } } }
DrqYuto👍を押しています

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2017/08/10 07:46

意味不明なコードです。どうしてこのコードで上手くいくと思ったのか説明していただくと、質問者様の理解度に応じた回答が得られるかと思います。
PineMatsu

2017/08/10 07:52

フィボナッチ数列がどういうものか判ってますか?
yoppi07

2017/08/10 07:53

そうですね。ループ処理の前に0と1を出力させてくらいしか説明できないです。
yoppi07

2017/08/10 07:55

前の2つの数値を加算して次の数値に出力させるということですよね?
LouiS0616

2017/08/10 08:03

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

2017/08/10 08:09

承知しました。
m.ts10806

2017/08/10 08:11

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

回答5

0

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

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

投稿2017/08/10 08:34

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anndonut

2017/08/10 11:55

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

2017/08/10 11:56

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

0

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

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

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

投稿2017/08/10 08:03

編集2017/08/10 08:05
PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

何かの課題でしょうか。。
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 07:52

trajanme

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoppi07

2017/08/10 07:59

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

0

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

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

投稿2017/08/10 07:58

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/10 08:00

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

0

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

Java

1int num2 = num0 + num1;

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

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

投稿2017/08/10 07:51

LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoppi07

2017/08/10 08:03

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

2017/08/10 08:05

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問