以下のプログラムを読んで問題に答えよ。
package
j1.exam01; import java.io.*; public class A01 { public static void
main(String[] args) throws IOException
{ BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in)); System.out.print("input> "); int n = Integer.parseInt(reader.readLine()); int total = 0;
for (int i = 1; i <= n; i++ ) {
total += i; } System.out.println(total); } } |
次の文はこのプログラムの概要を説明するものである。
この概要に沿ってプログラム内の空欄を埋めよ。
ユーザが入力した整数nに対し、1からnまでの和を計算し表示する
プログラム。ただし、nが0未満の場合は考慮しない。
問題 2
以下のプログラムを読んで問題に答えよ。
package
j1.exam01; import java.io.*; public class A02 { public static void
main(String[] args) throws IOException
{ BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in)); System.out.print("入力(1):"); int a = Integer.parseInt(reader.readLine()); System.out.print("入力(2):"); int b = Integer.parseInt(reader.readLine()); System.out.print("入力(3):"); int c = Integer.parseInt(reader.readLine()); System.out.print("入力(4):"); int d = Integer.parseInt(reader.readLine()); int t1, t2; if
( a*a
> b*b )
t1 = a;
else
t1 = b; if
( c*c
> d*d )
t2 = c; else
t2 = d; if
(t1*t1 > t2*t2)
System.out.println( t1 );
else
System.out.println( t2 ); } } |
次の文はこのプログラムの概要を説明するものである。
この概要に沿ってプログラム内の空欄を埋めよ。
ユーザが入力した4つの整数(負の数や0の可能性もある)の中で、絶対値が一番大きいもの(たとえば,その二乗が一番大きい数と考えるとよい)を表示するプログラム。
問題 3
以下のプログラムが問題2のプログラムと同じ結果を出力するように、空欄を埋めよ。
package
j1.exam01; import java.io.*; public class B01 { public static void
main(String[] args) throws IOException
{ BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in)); System.out.print("入力(1):"); int a = Integer.parseInt(reader.readLine()); System.out.print("入力(2):"); int b = Integer.parseInt(reader.readLine()); System.out.print("入力(3):"); int c = Integer.parseInt(reader.readLine()); System.out.print("入力(4):"); int d = Integer.parseInt(reader.readLine()); int t = a; if ( b*b > t*t )
t = b; if ( c*c > t*t )
t = c; if ( d*d > t*t )
t = d;
System.out.println(t); } } |
以下のプログラムを読んで問題に答えよ。
package
j1.exam01; public class B02 { public static void
main(String[] args) {
for (int i = 1; i <= 50; i++) {
if (i % 7 == 0) {
System.out.println(i);
} } } } |
次の文はこのプログラムの概要を説明するものである。
空欄に適切な語を入れて完成させよ。
1 から 50 までの整数のうち 7の倍数 を表示するプログラム。
ただし、演算子 %
は剰余(割った余り)を計算する演算子である。
問題 5
以下のプログラムが問題4のプログラムと同じ結果を出力するように、空欄を埋めよ。
package
j1.exam01; public class C01 { public static void
main(String[] args) {
for (int i = 7 ; i <= 50 ; i += 7) {
System.out.println( i ); } } } |
以下のプログラムを読んで問題に答えよ。
package
j1.exam01; public class C02 { public static void
main(String[] args) {
for (int i = 1; i <= 9; i++ ) {
for ( int j = 1; j <= i; j++ ) {
System.out.print("-");
int col = i * j;
if ( col < 10 )
System.out.print("-");
System.out.print(col);
}
System.out.println("-"); } } } |
上記のプログラムを実行したら、以下のように表示された。
--1-
--2--4-
--3--6--9-
--4--8-12-16-
--5-10-15-20-25-
--6-12-18-24-30-36-
--7-14-21-28-35-42-49-
--8-16-24-32-40-48-56-64-
--9-18-27-36-45-54-63-72-81-
この表示が行われるように、プログラム内の空欄を埋めよ。
問題 7
以下のプログラムを読んで問題に答えよ。
package
j1.exam01; import java.io.*; public class C03 { public static void
main(String[] args) throws IOException
{ BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in)); System.out.print("生徒の人数を入力:"); int students = Integer.parseInt(reader.readLine()); System.out.print("日直の人数を入力:"); int dayOn = Integer.parseInt(reader.readLine()); int permutation = 1; for (int i = students;
i > students - dayOn ; i--) {
permutation *= i; } int factorial = 1;
for (int i = 1; i <= dayOn ; i++)
{
factorial *= i; } int combination = permutation / factorial; System.out.println("組み合わせの数は" + combination + "通り"); } } |
次の文はこのプログラムの概要を説明するものである。
この概要に沿ってプログラム内の空欄を埋めよ。
生徒の人数と、その生徒の中から選ばれる日直の人数を入力させ、
その組み合わせの数を計算し表示するプログラム。
問題 7 に対するヒント
生徒の人数がn人で、日直の人数をr人とすると、生徒の中から日直を選ぶ組み合わせの数
C は以下の式で求められる。
C = n!
/ ((n-r)! * r!) = n * (n-1) * ... * (n-r+1) / r!
n! はnの階乗を表すものとし、nの階乗は以下の式で表される。
n! = n
* (n-1) * ... * 1
1! = 1
0! = 1