以下の問に答えよ。
下に示すように、正の整数 n をキーボードから受け取って、1 から n までの整数を表示し、区切りとして、各数の後に空白を表示するが、
3 で割り切れる整数のあとは空白の代わりに !
を
3 で割り切れなくて一の位が 7 の整数のあとは空白の代わりに ?
を
表示するプログラムを作成せよ。 (n として負の数または 0 を受け取ったときは、改行のみ表示するか、もしくは何も表示しなくてよい。)
実行例 1:
正の整数を入力してください: 8↵
1 2 3!4 5 6!7?8
実行例 2:
正の整数を入力してください: 30↵
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!
実行例 3:
正の整数を入力してください: 0↵
実行例 4:
正の整数を入力してください: 1↵
1
下に示すように、0 以上の数 n
をキーボードから受け取って、
ディスプレイ上に、一番最初に begin
と表示し、余分な空行を開けずに、
最も上の行の長さが \(3 n\) で、長さが \(2\)
ずつ減る左上直角三角形を表示するプログラムを作成せよ。
文字は、
1, 4, 7, … 行目は 012012012… の繰り返しを、
2, 5, 8, … 行目は 120120120… の繰り返しを、
3, 6, 9, … 行目は 201201201… の繰り返しを
表示し、 また、一番最後に(余分な空行を開けずに)end
と表示せよ。
(n として負の数または 0 を受け取ったときは、begin
〜 end
のみ表示する。)
非負の整数を入力してください: 3↵
begin
012012012
1201201
20120
012
1
end
実行例 2:
非負の整数を入力してください: 4↵
begin
012012012012
1201201201
20120120
012012
1201
20
end
実行例 3:
非負の整数を入力してください: 0↵
begin
end
int
型の引数 \(n\) を受け取り、
\(\sum\limits^{n}_{k=1}\dfrac{1}{k^2}\) を返す関数
double foo(int n)
を定義せよ。
main
関数は以下のコードを利用して、確認せよ。
実行例は、以下のようになる。
実行例 1:
正の整数を入力してください: 4↵
foo(4) = 1.423611 です。
実行例 2:
正の整数を入力してください: 100↵
foo(100) = 1.634984 です。
実行例 3:
正の整数を入力してください: 1↵
foo(1) = 1.000000 です。
int
型の配列 v
と、
をint
型の引数 a
この順に受け取り、
v[0]
〜 v[i]
の和が
3 の倍数となるような添字 \(i\) の個数を返す関数
int bar(const int v[]
を定義せよ。
ただし、この関数は引数として配列の要素数を受け取らず、配列にヘッダー limits.h
に定義されているマクロ , int a)INT_MIN
に等しい要素が現れたら、
その直前の要素を配列の最後の有効な要素と見なす。
main
関数は以下のコードを利用して、確認せよ。
この場合、プログラムは、
vx は部分和が 3 回、3 の倍数になります。 vy は部分和が 3 回、3 の倍数になります。 vz は部分和が 2 回、3 の倍数になります。 vw は部分和が 4 回、3 の倍数になります。
と出力する。(vx
, vy
, vz
, vw
をいろいろ変えて試してみよ。 )
整数 \(n\) を引数として受け取って、\( 0 \le 2x \le y < 2n \) を満たす
整数 \(x\), \(y\) の組(タプル)で \(x + y \) が 3 の倍数となるもののリストを返す関数
chome
をリスト内包表記を使って Python で定義せよ。(リストの中の順番は、この問題では問わない。
余りを求める演算子は Python でも「%
」である。)
例えば、chome(3)
は [(0, 0), (0, 3), (1, 2), (1, 5), (2, 4)]
を、
chome(4)
は [(0, 0), (0, 3), (0, 6), (1, 2), (1, 5), (2, 4), (2, 7), (3, 6)]
を返す。