ITエンジニアのプレイングマネージャー化応援サイト

問題3.繰り返し

どれだけ繰り返しても飽きることが無い。

これもコンピュータの特徴です。

今までの順次、選択(条件分岐)とこの繰り返しは構造化プログラミングという最も基本的なプログラミングの要素です。

ここでは繰り返しを使ったプログラムにチャレンジします。

以下のプログラムを作成しなさい。

(チームで、ホワイトボードを使い、方針を決めてからプログラミングを始めること)

1.0から100までの整数値を表示するプログラムを作成しなさい。

ただし、for文を使うこと。

(出力例)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

2.100から0までの整数値を表示するプログラムを作成しなさい

ただし、for文を使うこと。

(出力例)

100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

3.50から100までに含まれる偶数を表示するプログラムを作成しなさい

ただし、for文を使うこと。

(出力例)

50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100

4.1から100までに含まれる整数を全て合計するプログラムを作成しなさい

ただし、for文を使うこと。

(出力例)

合計は5050です。

5.上記4のプログラムを計算過程を表示するように変更しなさい

ただし、for文を使うこと。

(出力例)

1を足します。
現在の合計は1です。
2を足します。
現在の合計は3です。
3を足します。
現在の合計は6です。

(中略)

100を足します。
現在の合計は5050です。
合計は5050でした。

6.上記1~5のプログラムをWhile文を使って書き換えなさい

全てを一つのmainメソッドの中に作成してかまわない。

7.紙を何度折ることによって月に到達できるかを計算するプログラムを作りなさい

紙の厚さは0.1㎜とする。

月までの距離は.平均で約38万キロとする。

(出力例)

0.1㎜の紙を  回折ることで月に到達できます。
その時の紙の厚さは439804.65111040004キロメートルです。

8.次のような模様を出力するプログラムを2重のfor文で作りなさい

(出力例)

**********
**********
**********
**********
**********

9.次のような模様を出力するプログラムを2重のfor文で作りなさい

(出力例)

*****
****
***
**
*

10.次のような模様を出力するプログラムを2重のfor文で作りなさい

(出力例)

*
**
***
****
*****

11.基本情報技術者試験の勉強の一環で10進数を2進数に基数変換するプログラムを作成しなさい。

(出力例1)

13を2進数にすると1101です。

(出力例2)

200を2進数にすると11001000です。

12.IPv4で表現できるIPアドレスの理論上の数を求めなさい。

※IPv4は32ビットである。よって、2の32乗を計算することで求めなさい。
※累乗(べき乗)の計算をするMathクラスのpowメソッドは使わないこと。

ヒント:桁あふれ(オーバーフロー)に注意すること

(出力例)

4294967296

オーバーフローにはくれぐれも注意しましょう。過去にはこんな事件もありました。

13.FizzBuzz問題を解きなさい。

FizzBuzzとは、1から99まで順番に数を表示するプログラムです。
ただし、その数が3で割り切れるなら“Fizz”、5で割り切れるなら“Buzz”、両方で割り切れるなら“FizzBuzz”と表示します。

(出力例)

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz

14.コラッツの予想を解きなさい。

コラッツの予想とは、任意の正の整数numに対して
(1) numが奇数ならば3倍して1を加える。
(2) numが偶数ならば2で割る。
という操作を繰り返して,1になったら終了とする。
 1930年代にコラッツは,どんな正の整数から始めても上記の操作を繰り返せば1になると予想したというものです。

数学界の未解決問題の一つです。

つまり、証明はまだ誰もなしえていません。

(出力例:26の場合)

13 40 20 10 5 16 8 4 2 1

※(1以降は 1→4→2→1 を繰り返すループに入る)

(出力例:27の場合)

82 41 124 62 31 94 47 142 71 214 107 322 161 484 242 121 364 182 91 274 137 412 206 103 310 155 466 233 700 350 175 526 263 790 395 1186 593 1780 890 445 1336 668 334 167 502 251 754 377 1132 566 283 850 425 1276 638 319 958 479 1438 719 2158 1079 3238 1619 4858 2429 7288 3644 1822 911 2734 1367 4102 2051 6154 3077 9232 4616 2308 1154 577 1732 866 433 1300 650 325 976 488 244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1

15.モンテカルロ法を使い円周率を計算しなさい。

(1) モンテカルロ法の名前の由来を隣の人に教えてあげなさい。
(2) プログラムで実装し、java.lang.Math.PI(3.141592653589793)にできるだけ近づけなさい

考え方:
 ①半径1の円を考えます。
 ②その円に外接する正方形(一辺は2)を考えます。
 ③円の中心から右上の4分の1の円と正方形を取り出して考えます。
 ④0~1のランダムな疑似実数を2つ作り、それぞれをx軸,y軸の座標値として点を打ちます。
 ⑤円の中心と点(x,y)を結んだ直角三角形を考え、3平方の定理により斜辺を求めます。
 ⑥もしも、斜辺の長さが1以下なら円の中に点が打たれたということです。
 ⑦上記④~⑥の試行を一定回数繰り返し、全試行回数中、円の中に点が打たれた確率を求めます。
 ⑧⑦で求めた確率を4倍すると求める円周率(の近似値)になります。

簡単な証明
 円の面積 = 円周率 × 半径 × 半径
 4分の1の円の面積 = 円周率 × 半径 × 半径 ÷ 4
 4分の1の正方形の面積 = 半径 × 半径 ÷ 4
 円周率 = (4分の1の円の面積)÷ (4分の1の正方形の面積)

16.オリジナル問題作成

将来の後輩のために良い問題が出来たら教えてください。
 

以上。

 

JavaSEの問題集トップページに戻る

新入社員研修ポータル

IT企業の人財育成に関することなら全てお任せ下さい TEL 0120-559-463 受付時間 10:00 - 17:00 (土・日・祝日除く)

ZOOMを使った遠隔研修メニュー(PDFが開きます)

ZOOMを使った遠隔研修

新人エンジニアのためのJavaタイピングゲーム

新人プログラマのためのプログラミング動画

YouTubeチャンネル

お問い合わせはこちらから

    お名前 (必須)

    メールアドレス (必須)

    題名(件名)

    メッセージ本文

    確認画面は表示されません。上記内容にて送信しますので、よろしければチェックを入れてください。

    新入社員研修ポータル

    PAGETOP
    Copyright © Say Consulting Group, Inc. All Rights Reserved.