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

演習問題(中級・上級)

解答は earth.mlab.im.dendai.ac.jp/home/submit/1I-Computer2/[初級の出題日]/[学籍番号] のディレクトリに提出しなさい。 ソースファイル (〜.java) のみを提出すること。

ファイルの送信には ftp ソフトを用いる。 Linux の gFTP を使った提出方法 (実験室のマニュアル) を参照すること。

なお、中級・上級問題は楽しめる範囲で取り組めばよい。

- 繰り返し

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

問題1

1 から小さい順に、 5 の倍数でありかつ 7 の倍数である数を 10 個求めて表示し、 さらにその和を計算するプログラムを作成しなさい。 プログラム名は MultiplesOfFiveAndSeven とする。

問題2

0 から 2 までの間の偶数の和、
0 から 4 までの間の偶数の和、
0 から 6 までの間の偶数の和、
...
0 から 10 までの間の偶数の和
をすべて表示するプログラムを作成しなさい。

なお、このプログラムは 変数と演算子の回の演習問題 と同等の働きをするものである。 今回は while 文を使って書くこと。 プログラム名は SumOfEvenNumbers2 とする。

問題3

n 個の中から m 個を選ぶ組み合わせの数 nm の計算を行うプログラムを作成しなさい。 プログラム名は PrimitiveCombination とする。

nm は次のような式で求めることができる。

nm = n! / ( m! * (n - m)! )

あらかじめ適当な値を nm に代入しておき、 nm の組み合わせの数を計算し表示するプログラムとすること。 また、階乗を while 文による繰り返しで計算すること。

問題4

int 型変数を用意し適当な値を代入しておき、 その数を 3 ケタごとのカンマ区切り形式で表示するプログラムを書きなさい。 プログラム名は Comma3 とする。

例えば最初に用意した値が 7654321 だった場合、 出力は次のようになる。

7,654,321

この問題は上級者向けである。 次のような方法が考えられる。

与えられた数を各位の値に分割しカンマ区切りの処理を行うこととする。 上の例では 7, 6, 5, 4, 3, 2, 1 の 7 つの数値に分け、 それぞれの値を順番に表示していきながら 3 桁ごとにカンマを表示すれば良い。

なお、int型における計算は整数として行われる。 (小数点以下は計算されない)