- - PR -
引数で整数を渡す(Java)プログラムを作ってます
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-04 09:26
こんばんわ。今、Javaの課題をやってるんですが、
・ 引数が1つの場合 → その整数が素数か否か表示 ・ 引数が2つの場合 → その間(含、両数)の、素数とその個数を表示 例) >java kadai 701 >701は素数です 例) >java kadai 607 618 >607〜618に素数は3個あります:607, 613, 617 という問題で、自分で、プログラムを作ったのですが、うまくできません。 class sosu{ public static void main(String args[]){ int i,j; for(i = 2; i <= 10000; i++){ for(j = 2; j < i; j++){ if(i % j == 0){ break; } if(i == j){ System.out.println("素数は j"); } } } } というふうにつくったんですけど、アドバイスやこうやったらいいというのがありましたらお願いします。 | ||||
|
投稿日時: 2006-12-04 09:41
アドバイス済みです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35287&forum=7 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-12-04 10:11
宿題教えてください系の質問には、
「やり方、考え方なら教えるけど、答えは教えない」 というのが基本方針なので考え方だけ。 あなたが書いたソースの手順と意味を考えましょう。 1.2から1万までの繰返し 2.2から1.の数までの繰返し 3.1.の数を2.の数で割ってみて割り切れる答えがあれば合成数、なければ素数 この1の部分の繰返しの開始と終了の数字を、引数によって変えてあげればいいわけですね。
課題1のほうは 1.引数の数について 2.2から1.の数までの繰返し 3.1.の数を2.の数で割ってみて割り切れる答えがあれば合成数、なければ素数 課題2のほうは 1.引数1から引数2までの繰返し 2.2から1.の数までの繰返し 3.1.の数を2.の数で割ってみて割り切れる答えがあれば合成数、なければ素数 4.素数の場合は個数をカウントするための変数を+1する あとはうまくやってください。 代わりにそのものずばりのソースコードを書いてくれ、はナシですよ。 | ||||
|
投稿日時: 2006-12-04 10:18
あぁ、そうそう。
引数の個数を調べる場合はargs.lengthを利用します。
で挙動をみてみましょう。 長さが1のとき、2のときでif文で分岐させます。 引数を数字に直すにはInteger.parseInt(String)を使います。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Integer.html#parseInt(java.lang.String) いまどきの教育カリキュラムがどうなっているかは知りませんが、 こういう基礎的なところってちゃんと教えてあるんですかね? アルゴリズムを組む考え方だけで1年分の授業になりそうだし、 言語の仕様を一通りみてまわるだけで別枠で1年分の授業になりそう…。 | ||||
|
投稿日時: 2006-12-04 10:43
るぱんです。
これでわかる? [ メッセージ編集済み 編集者: るぱん 編集日時 2006-12-04 16:48 ] | ||||
|
投稿日時: 2006-12-04 21:55
こんなことやってると、そのうち誰も相手にしてくれなくなりますよ。
→ http://www.atmarkit.co.jp/bbs/phpBB/search.php?term=&addterms=any&forum=all&search_user_id=272932&sortby=-1&searchboth=both&submit=Search 自分で調べない(調べたことを書かない) いろいろ聞いておいて「やっぱりやめました」 返事が付いているのにどうなったか報告しない まず、引数の数を調べる。 引数が0または3以上なら、使い方を表示して終了。 引数が1または2なら、数字に変換してみる。 エラーになったら、使い方を表示して終了。 引数が1の時は、ループのはじめの数と終わりの数を、引数と同じにする。 引数が2の時は、大小関係を調べ、小さい方をループのはじめ、大きい方をループの終わりにする。 素数を調べる範囲のループ 2で割り切れるか、検査する 割り切れたら素数ではない 次の数へ 検査数字のループ(3から始めてステップ2) 検査数字で割り切れるか、検査する 割り切れたら素数ではない 次の数へ 検査数字のループをブレークしていなければ素数 割って、答えが0になるのは、割られる数が0の時だけです。 剰余を求めるには、剰余演算子を使います。VB では Mod、C 言語系では % です。 [ メッセージ編集済み 編集者: Jitta 編集日時 2006-12-04 21:55 ] | ||||
|
投稿日時: 2006-12-04 23:02
教えてくださった皆さんどうもありがとうございます。
すごく参考になりました。 今、結果を出して、答えが一致しないところがあるけど、自分でギリギリまで頑張ろうと思います。 報告等しなくてごめんなさい。 | ||||
|
投稿日時: 2006-12-05 03:08
そしたら、リンク先に報告入れようよ。 結局ODP.NETでいけないことが分かりました・・・とかさ、 言われた時だけ書けば良いってモンじゃないと思うよ。 ドンだけ遅れても、報告は入れようよ。 相手してくれた人に失礼です。 それに、ここで、ごめんなさいってしても、こっちで見てるとは限らないよ [2006-12-5 03:08 am] 報告無しを確認済み [ メッセージ編集済み 編集者: るぱん 編集日時 2006-12-05 03:08 ] |
1