java独学のワイ、素数判定プログラムが書けない

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2018/07/13(金) 18:20:24.06
JavaDriveというサイトでFor文まで理解するも書けない模様

ワイにプログラマーの資格はないんか?
2仕様書無しさん
垢版 |
2018/07/13(金) 18:20:50.72
FizzBuzzは書けた
2018/07/13(金) 18:56:12.28
資格はともかく才能も適正もない。

資格はともかくというのは全く無能のくせに丸暗記でJava Bronzeを取った人がいる前例があるから、
資格だけなら取れるかもしれない。
正直for文くらい直感でわからないようではプログラマーの適正は皆無。
2018/07/13(金) 19:10:30.58
頭で理解しただけで書けるわけないだろ
学校のテストじゃねえんだよ
5仕様書無しさん
垢版 |
2018/07/13(金) 19:34:45.05
片っ端から割れるか試すだけっしょ
for文で余裕じゃん
2018/07/13(金) 19:37:16.04
小さい数字ならいいけどハチャメチャデカイ数字だとめっちゃ時間かかりそう
7仕様書無しさん
垢版 |
2018/07/13(金) 21:28:00.20
>>3
じゃあほとんどの奴がプログラマーになれないな

>>5
どんな風に?
2018/07/13(金) 21:38:25.19
どんな風にも何も・・・

for(i=2;i<入力値;i++){
if((入力値 % i == 0 ){print("素数じゃない");exit(0);}
}
print("素数だよ");

こんだけじゃないの?0,1は素数じゃないよってif文がもう一個あれば。
これくらいは3分で直感でやらんと・・・これが合ってるかしらんけどw
9仕様書無しさん
垢版 |
2018/07/13(金) 21:39:52.87
求人で「未経験からプロのエンジニア」とあるけど、
ワイにもできるか心配だわ
10仕様書無しさん
垢版 |
2018/07/13(金) 21:41:02.32
>>8
exitってなんや?
2018/07/13(金) 21:42:45.65
javaだとSystem.exit()。俺はjavaを知らんけど、その辺もググってさっと変換できるセンスはプログラマには必要だと思うぞw
2018/07/13(金) 21:44:46.55
未経験歓迎は奴隷要員
13仕様書無しさん
垢版 |
2018/07/13(金) 21:51:21.06
>>11 ほーなんやな〜

int n = 100;
for(int i = 2; i<n; i++){
for(int a = 2; a<i; a++){
if(i%a == 0){
System.out.println(i + "は素数でない");
}else if{
System.out.println(i + "は素数");

ここまで来てるんやけど、
iに対してaがi>aを満たすまで全部の数表示されるから困ってる。
14仕様書無しさん
垢版 |
2018/07/13(金) 21:53:36.63
>>13
2回目の条件分岐はelseのみだった
2018/07/13(金) 21:58:32.79
>>13
ネスト多分必要ないぞ?>>8見てや。こんだけでいい(多分)。えらいややこしいことになってない?w
俺が即興で思いつたのじゃ動かんけ?
16仕様書無しさん
垢版 |
2018/07/13(金) 22:05:53.65
>>15
動かんけ
2018/07/13(金) 22:10:48.44
めんどかったけどpaizaで試したら動くやんけw
まさかとは思うが>>8をそのままコピペして動かんと言ってる訳じゃなかろうな?
18仕様書無しさん
垢版 |
2018/07/13(金) 22:13:57.49
>>変数は入力したけど動かへん
2018/07/13(金) 22:17:22.31
知能障害があるんじゃないのか?
2018/07/13(金) 22:19:32.04
いいか?>>8は別にjavaで動かすように書かれてる訳じゃないからな?単に「流れ」だからw
>>8をjavaで動くように色々変えて、最後に入力値が2未満なら素数じゃないと表示させる条件を加えなさい。

それすら無理なら確実にプログラマは無理だw
21仕様書無しさん
垢版 |
2018/07/13(金) 22:20:04.01
何がわからないのかがわからない
2018/07/13(金) 22:21:36.54
www
23仕様書無しさん
垢版 |
2018/07/13(金) 22:25:20.96
>>13
nまでの素数を表示するためにi回インクリを繰り返すんやが、
二回目のFor文は iに対してiまでの自然数で検算しようと思ったんや。
a回繰り返してな。

その結果、iがaまでの自然数全てで割られるんやが、
一つのiに対してa個全て割る過程が表示されてしまうんや。

そこが問題
24仕様書無しさん
垢版 |
2018/07/13(金) 22:31:29.10
検算の過程が表示されてしまうからそれを省略したい。
iまでのaで全て検算した結果、「そのiは素数」と表示したいんや。
2018/07/13(金) 22:33:46.38
自分で表示しておいて何言ってんだこの馬鹿は
26仕様書無しさん
垢版 |
2018/07/13(金) 22:35:15.83
>>25
2018/07/13(金) 22:36:13.76
そらfor文の中にprint書いてりゃ表示されるわな
書かなければええんちゃうん?w

どうも俺に彼の問題を解決するのは無理のようだ・・・
28仕様書無しさん
垢版 |
2018/07/13(金) 22:40:09.67
こう見えても明治卒やで

一応IT系に内定を貰ってるから軽く勉強のつもりが池沼やったんなや〜
びっくりや

ってことでコピペグラ―になるわ!
ほなっ!
2018/07/13(金) 22:42:24.67
結局のところ、何かの真似をしているだけで自分で何やってるかすら
理解してないんだろ?
プログラマー目指すなんて言っておきながら、その程度の労力すら
惜しんでスレ立てて人に聞いてるとか、嗤わせるにもほどがある
30仕様書無しさん
垢版 |
2018/07/13(金) 22:43:58.41
>>29
全部自分で考えてるし、真似はしてない
FizzBuzzは簡単やったのにどうしてかな〜
2018/07/13(金) 22:43:59.19
明治卒うせやんwww
I地頭はあるんだろうから必死で勉強しぃやw
今のレベルじゃすぐに営業に配置転換ぞw
32仕様書無しさん
垢版 |
2018/07/13(金) 22:45:18.25
>>31
嘘やで通信高卒や
2018/07/13(金) 22:45:21.72
public class Main {
 public static void main(String[] args) {
  int n = 100;
  for (int i = 2; i < n; i++) {
   boolean ok = true;
   for (int j = 2; j < i; j++) {
    if (i % j == 0) {
     ok = false;
    }
   }
   if (ok) {
    System.out.println(i + "は素数");
   } else {
    System.out.println(i + "は素数ではない");
   }
  }
 }
}
2018/07/13(金) 22:45:29.07
学部ならともかく学校とプログラマーの適正に因果関係があると思っているなら
正真正銘の知障なので診察受けたほうがいい。
この板の有名荒らしの36歳みたいになるぞ。
36歳も大卒大卒アピールするだけで何にもできない人間のクズだった。
2018/07/13(金) 22:46:48.95
>>32
お前は本当に何がしてぇんだよw
36仕様書無しさん
垢版 |
2018/07/13(金) 22:49:29.69
>>35
すまんな、ただ教えてほしかっただけなんや
プログラム楽しいからさ
37仕様書無しさん
垢版 |
2018/07/13(金) 22:52:26.64
関西の豪雨で水に流されるのはワイの方が良かったんやな〜
2018/07/13(金) 22:59:52.53
もしかして落ち込むふりして同情でも買おうとしているつもりなの?
それで来年から社会人?
来年新中学生の間違いじゃないの?
2018/07/13(金) 23:02:58.07
小学生未満だろ
こいつも発達障害か
2018/07/13(金) 23:17:05.26
発達障害は精神が幼いって意味じゃない
生半可な知識でマウントに使うなよ
41仕様書無しさん
垢版 |
2018/07/13(金) 23:20:50.63
>>5
public static void main(String[] args) {
 for (int i = 0; i < 100; i++) {
  if (isPrime(i)) {
   System.out.println(i);
  }
 }
}

static boolean isPrime(int n) {
 if (n < 2) {
  return false;
 }
 for (int i = 2; i < n; i++) {
  if (n % i == 0) {
   return false;
  }
 }
 return true;
}
2018/07/14(土) 00:42:30.34
失礼します。
私も触発されて、FizzBuzzのコードをコメント付きで書いてみました。
https://ideone.com/McsJKW
よろしければ、スレ主さんのFizzBuzzのコードもアップして貰えませんか?
2018/07/14(土) 01:53:12.20
>>1
この>>42はJava一年半やってる36歳無職
こんな風になっちゃだめ
44仕様書無しさん
垢版 |
2018/07/14(土) 06:42:41.79
>>42

for(int a = 1; a<101; a++){
if(a%3 == 0){
System.put.println("Fizz");
}else if(a%5 == 0){
System.put.println("Buzz");
}else if(a%3 == 0 && a%5 == 0){
System.put.println("FizzBuzz");
}else{
System.put.println(a);
}
}

どうかな?
45仕様書無しさん
垢版 |
2018/07/14(土) 07:12:18.46
>>42
java初めて数か月も経ってないけど、
ワイは論理を変換する能力がないから詰んでるのかなぁ
46仕様書無しさん
垢版 |
2018/07/14(土) 10:16:18.43
>>42
7で割り切れるときはHamuと出力してください
2018/07/14(土) 12:25:28.65
>>44
ありがとうございます。
>>43が言うように、俺はそれほどプログラムに習熟していませんが、
僭越ながら指摘させて頂きます。
あなたのコードだと、始めに3の倍数を全て抽出してしまうので、
3の倍数でかつ5の倍数(15など)が全てFizzBuzzではなくFizzとして
出力されてしまいます。これは5の倍数についても同じことが言えます。
そこでまず3の倍数かつ5の倍数を切り出し、それから3の倍数や5の倍数を
表示するとよいと思います。
2018/07/14(土) 12:34:02.26
こいつに指摘される男の人って・・・
2018/07/14(土) 12:38:00.46
>>47
調べりゃすぐ出てくることをよくそんな偉そうと無駄に長く言えるなw
2018/07/14(土) 12:41:17.77
>>45
多分、練習によるものが大きいと思います。

俺の場合、当初は(C言語ですが)ポインタや構造体でつまずいていましたが、
今ではオブジェクト指向も理解できるようになりました。
学習方法や学習時間で伸び方は変わってくると思います。
51仕様書無しさん
垢版 |
2018/07/14(土) 12:46:26.20
>>50
オブジェクト指向はどういうものか簡潔に説明してみて
2018/07/14(土) 12:48:29.04
>>50
オブジェクト指向で作ったプログラムを見せてみて
2018/07/14(土) 13:37:41.37
マウント取りたくてしょうがないって感じのレスだな
2018/07/14(土) 13:46:17.38
ダラダラ長いコード書きやがって
55仕様書無しさん
垢版 |
2018/07/14(土) 13:48:29.47
>>47
else if なら順不同でしょ?
elseのみならともかく

100までの「i」がif文によって上の条件式を満たす形で置き換わっていく。
という風に捉えてるけど。

cmdで走らせてみたけど最初に3の倍数全ては表示されないよ。

for(int a = 1;a<101;a++){
if(a%3 == 0){
System.out.println("Fizz");
}else if(a%5 == 0){
System.out.println("Buzz");
}else if(a%5 == 0 && a%3 == 0){
System.out.println("FizzBuzz");
}else if(a%7 == 0){
System.out.println("Hamu");
}else{
System.out.println(i);

※Hamu付き
56仕様書無しさん
垢版 |
2018/07/14(土) 13:51:06.21
あー そうやったんや〜

確かにFizzBuzz出てこんわ
57仕様書無しさん
垢版 |
2018/07/14(土) 13:52:41.86
>>47
なったで

for(int a = 1;a<101;a++){
if(a%5 == 0 && a%3 == 0){
System.out.println("FizzBuzz");
}else if(a%5 == 0){
System.out.println("Buzz");
}else if(a%3 == 0){
System.out.println("Fizz");
}else if(a%7 == 0){
System.out.println("Hamu");
}else{
System.out.println(a);
2018/07/14(土) 13:56:22.43
スレ主も36歳もコピペばかり
2018/07/14(土) 14:02:53.71
>>57
if、else ifはどれか一つでもtrueになるとそのブロック内しか通らない
だから優先的に判定したい条件は先に書かないといけない
ちなみに>>57のコードだと5や3の倍数かつ7の倍数が考慮漏れしてるね
60仕様書無しさん
垢版 |
2018/07/14(土) 14:04:36.95
>>58
自分で書いたもの以外のコピペはしてないで

条件式が一つで後にほぼ同じ抽出内容の複数条件式を持つ分岐が控えている場合
先に複数の方を書かんと、先にある一つの条件式を先に満たしてしまって
そこで抜けてまうのか

>>47 感謝やで
61仕様書無しさん
垢版 |
2018/07/14(土) 14:06:28.22
>>59 ほんとやわ

少し考えるわ
62仕様書無しさん
垢版 |
2018/07/14(土) 14:12:26.69
>>59 考えたんやけど
条件式が優先されるから仕方ないんちゃう?
63仕様書無しさん
垢版 |
2018/07/14(土) 14:14:19.52
>>59
組み合わせか?
2018/07/14(土) 14:14:56.11
>>61
バグってこういう些細なことで生まれるからね
自分の書いたコードが要求や仕様を満たしてるか見直してみるといいと思うよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況