以下の問に答えよ。
下に示すように、正の整数 n をキーボードから受け取って、1 から n までの整数を表示し、区切りとして、各数の後に空白を表示するが、
7 で割り切れる整数
4 で割ると 2 で余る整数
は飛ばすプログラムを作成せよ。 (n として負の数または 0 を受け取ったときは、改行のみ表示するか、もしくは何も表示しなくてよい。)
実行例 1:
正の整数を入力してください: 4↵
1 3 4
実行例 2:
正の整数を入力してください: 15↵
1 3 4 5 8 9 11 12 13 15
実行例 3:
正の整数を入力してください: 0↵
実行例 4:
正の整数を入力してください: 1↵
1
下に示すように、0 以上の数 n
をキーボードから受け取って、
ディスプレイ上に、最も上の行の長さが n
で、長さが 1 ずつ減る左上直角三角形を表示するプログラムを作成せよ。
文字は 1 から始まり 1 ずつ増える数(を10 で割った余り)を表示するが 4, 8, 12, …番目(4 の倍数番目)は数字の
代わりに「!
」を表示せよ。
また、一番最後に(余分な空行を開けずに)end
と表示せよ。
(n として負の数または 0 を受け取ったときは、end
のみ表示する。)
非負の整数を入力してください: 6↵
123!56
7!901
!345
!78
9!
1
end
実行例 2:
非負の整数を入力してください: 12↵
123!567!901!
345!789!123
!567!901!3
45!789!12
3!567!90
1!345!7
89!123
!567!
901!
345
!7
8
end
実行例 3:
非負の整数を入力してください: 0↵
end
int
型の引数 \(n\) を受け取り、次のように定義される数列 \(\{a_i\}\):
\[\begin{array}{rlll}
a_0 & = & 1 \\
a_k & = & k \cdot a_{k - 1} \ \ \ & (k\ が奇数のとき)\\
a_k & = & (k - 1) \cdot a_{k - 1}\ \ \ & (k\ が偶数のとき)
\end{array}\]
の、\(n < a_k \) となる最小の \(k\) を返す関数
int foo(int n)
を定義せよ。
なお、\(a_1 = a_2 = 1,\; a_3 = 3,\; a_4 = 9,\; a_5 = 45,\; a_6 = 225, \cdots \) である。
main
関数は以下のコードを利用して、確認せよ。
実行例は、以下のようになる。
実行例 1:
正の整数を入力してください: 0↵
0 < a_{0} です。
実行例 2:
正の整数を入力してください: 8↵
8 < a_{4} です。
実行例 3:
正の整数を入力してください: 9↵
9 < a_{5} です。
int
型の配列 v
と、
int
型の引数 a
をこの順に受け取り、
v[0]
〜 v[i]
の和が
a
以上となるような最小の添字 \(i\) を返す
(v[0]
〜 v[i]
の和が一度も a
以上とならないときは -1 を返す)関数
int bar(const int v[], int a)
を定義せよ。
ただし、この関数は引数として配列の要素数を受け取らず、配列にヘッダー limits.h
に定義されているマクロ INT_MIN
に等しい要素が現れたら、
その直前の要素を配列の最後の有効な要素と見なす。
main
関数は以下のコードを利用して、確認せよ。
この場合、プログラムは、
vx は添字 3 のところで和が 10 以上になります。 vy は添字 1 のところで和が 5 以上になります。 vz は和が 10 以上になることはありません。 vw は添字 2 のところで和が 0 以上になります。
と出力する。(vx
, vy
, vz
, vw
をいろいろ変えて試してみよ。 )
整数 \(n\) を引数として受け取って、\( 0 \le x < n,\; 0 \le y < n \) を満たす
整数 \(x\), \(y\) の組(タプル)で \(x ^ 2 + y ^ 2 < n ^ 2\) となるもののリストを返す関数
chome
を Python で定義せよ。(リストの中の順番は、この問題では問わない。)
例えば、chome(3)
は [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
を、
chome(4)
は [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2)]
を返す。