コンピュータ基礎および演習II

演習問題

解答は

に提出しなさい。ソースファイル (〜.java) のみを提出してください。 提出は gFTP 等の ftp ソフトを用いて行ってください。

- 繰り返し

いずれの問題も while 文を使った繰り返しのプログラムとして書きなさい。

問題1

int 型変数を用意し適当な値を代入しておく。 その整数の階乗 n! を求めるプログラムを書きなさい。 プログラム名は Factorial とする。

n! = 1 × 2 × 3 × … × n

である。例題の 1 つめのプログラムと同じ考え方で書けるはずである。

n ≧ 13 になると正しい値が求まらなくなるが、 これは int 型整数の扱える範囲を越えるためである。 今回はこれで仕方ないとする。

問題2

1 ≦ n ≦ 10 の整数 n について、 n, 2n, 3n を一覧表の形で出力するプログラムを書きなさい。 プログラム名は Power2N3N とする。

出力の最初の数行は次のようになる。

1: 2 3
2: 4 9
3: 8 27
4: 16 81

問題3

次のような文字からなる三角形を描くプログラムを書きなさい。 プログラム名は Triangle とする。

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

このプログラムは 2 重の繰り返しとして書くこと (単に表示できれば良いというわけではない) 。 外側の繰り返しで行数を数えながら行毎の繰り返しを 5 回行うこととし、 内側で 1 行目で * を 1 回、 2 行目で * を 2 回、 3 行目で * を 3 回…と出力するような繰り返しを記述すれば良い。

なお、改行をせずに文字を表示するためには System.out.print(表示したい内容); を使うと良い。 また、単に改行だけした場合は、 System.out.println(); と書けば良い。 繰り返しの中のどのタイミングで改行をすべきかについても 考えること。

問題4

1 から100までの範囲にある素数をすべて表示するプログラムを書きなさい。 プログラム名は Prime100 とする。

このプログラムは例題の 2 つ目のプログラムを改造し、 素数を判定する while 文の外側に、 2, 3, 4, …, 100 の順に判定対象となる数を登場させる while 文を書き、二重の繰り返しとすればよい。

なお、このプログラムの作り方だと 2 は素数であるが表示されない。 今回はこのままでも良いとするが、 余力のある人は 2 もきちんと表示されるようにしてほしい。

なお、「絵本」p.55 に同種のサンプルプログラムがある。 このサンプルの方法のような配列を用いずに、 while 文のみを使う方法を考えること。