[過去ログ] プログラミングのお題スレ Part21 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
745: デフォルトの名無しさん [] 2023/06/09(金) 22:46:11.50 ID:oFhRSqmA(1/4) AAS
>>743743(1): 蟻人間 ◆T6xkBnTXz7B0 [sage] 2023/06/09(金) 20:55:26.51 ID:yz+hWehT(1/3) AAS
お題: 与えられた4頂点が長方形または正方形を形成するかどうか判定せよ。長方形または正方形のときtrueを返すものとする。頂点の順序は無視する。
例)
{ (0, 0), (1, 0), (1, 1), (0, 1) } → true.
{ (0, -1), (0, 1), (1, 0), (-1, 0) } → true.
{ (0, -2), (1, 0), (0, 2), (-1, 0) } → false.
R
www.ideone.com/hNR3VK
746(4): デフォルトの名無しさん [] 2023/06/09(金) 22:55:53.04 ID:oFhRSqmA(2/4) AAS
>>739 >>742742(2): デフォルトの名無しさん [] 2023/06/09(金) 20:08:26.01 ID:7Vf79qrZ(1) AAS
>>738 c
外部リンク:ideone.com
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
void sieve_of_eratosthenes(int n, int **isprime, int **primes_beg, int **primes_end) {
int i, m, j, nbytes = (1 + n) * sizeof **isprime, *map = malloc(nbytes), *beg = malloc(nbytes), *end;
for (i = 2; i <= n; i++) map[i] = 1;
for (i = 2, m = sqrt(n); i <= m; i++)
if (map[i]) for (j = i * i; j <= n; j += i) map[j] = 0;
for (i = 2, end = beg; i <= n; i++) if (map[i]) *end++ = i;
*isprime = map, *primes_beg = beg, *primes_end = end;
}
int main() {
int n = 1234567, *isprime, *primes_beg, *primes_end;
sieve_of_eratosthenes(n, &isprime, &primes_beg, &primes_end);
int *a, *b, c, count = 0;
for (a = primes_beg; a < primes_end && *a <= n / 3; a++)
for (b = a; b < primes_end && *b <= (c = n - *a - *b); b++)
if (isprime[c]) count++;
printf("count = %d\n", count);
return 0;
}
正解。
出題者によるプログラム
www.ideone.com/0R9KaI
747: デフォルトの名無しさん [] 2023/06/09(金) 23:13:25.78 ID:oFhRSqmA(3/4) AAS
>>744744(2): 蟻人間 ◆T6xkBnTXz7B0 [sage] 2023/06/09(金) 22:16:01.89 ID:yz+hWehT(2/3) AAS
お題: コマンドロボット。
ロボットはx-y平面の原点(0, 0)に居る。
コマンドIDはロボットによる何かのアクションを表す0以上4以下の整数で、次のように定義する。
コマンド0は何もしない。
コマンド1は位置が(-1, 0)だけ動く。
コマンド2は位置が(+1, 0)だけ動く。
コマンド3は位置が(0, -1)だけ動く。
コマンド4は位置が(0, +1)だけ動く。
入力として、コマンドIDのリストが与えられる。コマンドを順番に実行したときの最終位置を出力せよ。
例)
(2, 3, 0, 3, 1) → (0, -2).
(1, 1, 4, 0, 0, 2) → (-1, 1).
R
www.ideone.com/eH07Wk
749(1): デフォルトの名無しさん [] 2023/06/09(金) 23:59:17.57 ID:oFhRSqmA(4/4) AAS
>>748748(2): 蟻人間 ◆T6xkBnTXz7B0 [sage] 2023/06/09(金) 23:20:35.60 ID:yz+hWehT(3/3) AAS
お題: コマンドロボット2。
ロボットはx-y平面の原点(0, 0)に居る。
コマンドIDはロボットによる何かのアクションを表す0以上4以下の整数で、次のように定義する。
コマンド0は何もしない。
コマンド1は位置が(-1, 0)だけ動く。
コマンド2は位置が(+1, 0)だけ動く。
コマンド3は位置が(0, -1)だけ動く。
コマンド4は位置が(0, +1)だけ動く。
入力として、最終位置が与えられる。原点から最終位置まで移動する最短のコマンドIDリストを生成せよ。
最終位置のx成分とy成分がどちらも非ゼロならx成分から先に移動せよ。
例)
(2, -3) → (2, 2, 3, 3, 3).
(-1, 3) → (1, 4, 4, 4).
R
FormatArray <- function(a) paste0("(", paste0(a, collapse = ", "), ")")
P <- list(c(2, -3), c(-1, 3), c(0, 0))
for (p in P) cat(FormatArray(p), " → ", FormatArray(rep((sign(p) + c(3, 7)) / 2, abs(p))), "\n", sep = "")
[実行結果]
(2, -3) → (2, 2, 3, 3, 3)
(-1, 3) → (1, 4, 4, 4)
(0, 0) → ()
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.204s