[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/12 17:52 / Filesize : 270 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part16



1 名前:デフォルトの名無しさん mailto:sage [2019/11/17(日) 09:00:22.10 ID:xqEdXdr6.net]
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part15
mevius.5ch.net/test/read.cgi/tech/1564310397/

230 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 23:47:24 ID:qBy9puuu.net]
あとから追加されそうな条件の
仮に全部0以上の整数とした時に
5*5*5>125,100>4*4*4のメモ代り

231 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 23:59:19 ID:RjwvfByt.net]
k=1から100のどれかに対してじゃなくて、
k=1から100のそれぞれすべてに対して求めるんじゃろ…

232 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:11:02 ID:10jfhd7e.net]
https://ideone.com/WP5jkx

10000000以下で0.04秒
C++は速い!

233 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:13:04 ID:10jfhd7e.net]
C#の10000以下より速い!

234 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:30:48 ID:10jfhd7e.net]
>>224
k=1の時からいきなり難しいなあ

235 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:40:32 ID:10jfhd7e.net]
>>224
ん?
解を全て求めるのではなく
各kに対して1個解を求めればいいの?

236 名前:デフォルトの名無しさん [2019/12/11(水) 09:11:06 ID:aadkbL3F.net]
>>197 seq, factor, awk

seq 10000 | factor | awk 'NF == 3'

237 名前:デフォルトの名無しさん [2019/12/11(水) 09:24:12 ID:ztpKOEip.net]
>>233
awkのとここれどういう意味?わたし女騎士だけど教えて!

238 名前:デフォルトの名無しさん [2019/12/11(水) 10:31:05 ID:dG8VWZ74.net]
>>234
女騎士?

まあいいや。NFが3になる行だけ出力するんだよ。NFはフィールド数ね。
区切り文字がデフォルトのままだと空白文字で区切った時の個数。例えば行に a b c って入ってたら 3 になる。



239 名前:デフォルトの名無しさん [2019/12/11(水) 12:05:48.97 ID:dG8VWZ74.net]
>>197
Kotlin
https://paiza.io/projects/6zHoXJXw1KuNLWZViVDYug

240 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 13:38:08.03 ID:ivhCTlPt.net]
>>233
素因数分解しちゃえばいいのか
サイコー

241 名前:デフォルトの名無しさん [2019/12/11(水) 13:42:56.98 ID:QbvBtpFM.net]
>>233
やってみたら
--- Data stack:
って出力が10000行並ぶだけなんだけど…
なんかオプションいる?

242 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 14:03:27.78 ID:jagg9gKF.net]
普通にできたけど
何のシェル使ってるの?

243 名前:デフォルトの名無しさん [2019/12/11(水) 14:35:31 ID:QbvBtpFM.net]
bash。macで。

244 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 14:38:38 ID:jagg9gKF.net]
俺もbashもだけど
seq 100くらいなら動くの?

245 名前:デフォルトの名無しさん [2019/12/11(水) 15:36:13.32 ID:QbvBtpFM.net]
$ seq 3 | factor で止めてawk飛ばすと以下の出力です。
Factor 0.98 x86.64 (1886, heads/master-211d69561a, Jul 2 2018 17:46:19)
[Clang (GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.29))] on macosx
IN: scratchpad
--- Data stack:
1
IN: scratchpad
--- Data stack:
1
2
IN: scratchpad
--- Data stack:
1
2
3
IN: scratchpad

246 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 16:49:11 ID:1E1+DBtw.net]
>>233
約数が3個な数を列挙ってこと?
4の約数は1,2,4の3個だけど
6の約数は1,2,3,6の4個だよ

247 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 17:02:16.44 ID:hUZCfnLs.net]
factorみりゃわかんだろ……
素因数の数だっつーの

248 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 18:01:04.84 ID:10jfhd7e.net]
素因数の数が3?



249 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 18:12:47.35 ID:ivhCTlPt.net]
こんな具合だろ
seq 100 | ~/bin/factorization.pl| awk -F, "NF==2" | ~/bin/align.pl "=" 4 2,2
6 2,3
9 3,3
10 2,5
14 2,7
......
9995 5,1999
9997 13,769
9998 2,4999

250 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 19:33:15.23 ID:ReYSFEXH.net]
>>224
とりあえず7個を除いて出来た
ここからが長いのかな?

251 名前: mailto:sage [2019/12/11(水) 19:46:53.70 ID:6E3wj7zP.net]
>>243
そうそう、それに
8 の約数は 1, 2, 4, 8 の 4 個だけれども、これは >>197 のいう半素数ではないんですよね

>>233 は間違っていますね

252 名前:デフォルトの名無しさん [2019/12/11(水) 20:44:53.42 ID:WjX/lCwK.net]
QZがそういうなら合ってるんじゃないの?

253 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 20:51:31.74 ID:7CYZ1E2N.net]
反面教師?

254 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 20:54:12.94 ID:7CYZ1E2N.net]
お題
1兆以下の半素数の個数を求めよ

これだとスクリプト系は無理かな?

255 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 21:07:14.36 ID:ivhCTlPt.net]
素数判定で書いた
long long int のC言語でも100億ぐらいを上限でサポートしてる
100億以上の判定は遅くてより優れた判定アルゴリズムが必要だからだ

推定:C系、優れた判定、現代スペックのPCが必要

256 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 21:11:52.35 ID:7CYZ1E2N.net]
素数判定する必要は無いよ

257 名前: mailto:sage [2019/12/11(水) 22:08:07.74 ID:6E3wj7zP.net]
>>252
>long long int のC言語でも100億ぐらいを上限でサポートしてる

極めて不正確ですよ
C99 後は uint64_t の最大値は 1844'6744'0737'0955'1615=約 1844 京ですね
それに実際に割ってみる方法以外には素数判定があるとでも?そんなものは存在しませんね

258 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 22:15:54.42 ID:10jfhd7e.net]
何年も前に素数の数を数え時は
シングルスレッドのコードで
5000億までで1時間弱

だから>>251もそのくらいで求まるはず



259 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 22:46:17.34 ID:10jfhd7e.net]
>>254
詳しそうなので>>251をよろしく!

260 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 23:52:51.14 ID:VagVWTF0.net]
知り合いから、「子供の宿題なんだけど解けない」と言われた。

「正方形13枚と正三角形を何枚か組み

261 名前:合わせて、凸多面体を作るとき、その頂点数は A 個または B 個である。ただし一つの頂点には同じ枚数の面が集まっているものとし、A < B とする。」

途中経過を適宜表記しつつ解くプログラムを!
[]
[ここ壊れてます]

262 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:28:15.32 ID:UvCIGzud.net]
A=19
B=38

263 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:32:27.86 ID:UvCIGzud.net]
>>247
3乗して64bitに収まる範囲全て調べたけど
7個から減らなかった

264 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:35:14.01 ID:UvCIGzud.net]
7個になるまで9秒
3乗して64bitに収まる範囲検索2031秒

265 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:42:16.14 ID:UvCIGzud.net]
>>257
プログラミングの宿題じゃないはずなので
解き方は他の板で聞いて

266 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:44:42.94 ID:UvCIGzud.net]
k=30, 33, 42, 52, 74, 75, 84
の時がわからん

267 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 06:06:40.97 ID:wmbGd8tm.net]
>>254
f(x) = 1 if x is prime
f(x) = 0 otherwise
なる f: R -> R が存在しないってなんで言い切れんの?
頭悪すぎ

268 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 07:32:31.88 ID:UvCIGzud.net]
>>254>>263も頭悪すぎだ



269 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 07:40:34.14 ID:UvCIGzud.net]
>>252
素数判定は不要

>>254
uint64_tの上限じゃなくて素数判定可能な範囲
また、実際に割ってみる以外の方法も色々と存在する

>>263
fは存在する
あなたが書いた通りの定義そのままをfとすれば良い
fの存在と素数判定の方法が存在するかどうかは無関係

270 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 07:48:51.75 ID:wmbGd8tm.net]
>>265
お前も馬鹿だな
簡単な関数で f が定義できるならそれはそのまま簡単な計算で素数判定ができることに他ならない
こちらはそんな方法が存在するといっているわけではなく、無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さを指摘しているだけなんだが

271 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 08:00:21.80 ID:UvCIGzud.net]
>>263
「簡単な関数でfが定義できる」
非常に重要な言葉を後付けだし
これが最初からあったとしても、
単に簡単に素数判定可能可能を言い換えただけの
何の意味もないレス

リテラシーの無さの指摘の方法が頭が悪い

272 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 08:08:21.73 ID:UvCIGzud.net]
現代の技術で言えば

特殊な形であれば高速に判定する方法はある
特殊な形でなければ高速に判定する方法は見つかっていない
実際に割ってみる以外の判別方法は存在する

273 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 08:25:56.28 ID:UvCIGzud.net]
なんでNやZじゃなくてRにしたのか気になる

274 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 12:56:52.27 ID:wmbGd8tm.net]
文脈無視して揚げ足取ってて草
こいつ関数は全射しか存在しないとでも思ってんのか

275 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 14:55:31.47 ID:2PtCb74v.net]
単純な疑問だよ
なんかこだわりとか深い意味とかあるのかと

「実数が素である」とか書かれると、
素数じゃない別の意味を指してると思うわけで

揚げ足取られたと思ったってことは
ミスったと思ったんだよね?

276 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 15:35:29.90 ID:zRSUYply.net]
いつもの連投アスペ君じゃん
相手すんなよ

277 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 17:58:27.01 ID:2C/x7O5N.net]
論破されて捨て台詞
の典型でした

278 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 18:19:15.31 ID:RcQND7/k.net]
5chリテラシーが低いやつもだいぶ減ってはきてるが
このスレはちょいちょい出てくるよなぁ



279 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 18:27:18.35 ID:cffvEFbc.net]
>>263を書いておいて良くいうよ

280 名前:デフォルトの名無しさん mailto:age [2019/12/12(木) 18:39:51.55 ID:JPTMcftT.net]
論破を禁止します

281 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 19:05:41.21 ID:f2lx0DlC.net]
まーたロンパンジーが湧いてんのかよ

282 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 19:12:35.43 ID:cffvEFbc.net]
リテラシー君
よほど悔しかったのかな?

283 名前: mailto:sage [2019/12/12(木) 19:15:24.80 ID:bwSkQtN1.net]
>>256
単に上限値を増やしただけのお題なんて糞だと思います

284 名前: mailto:sage [2019/12/12(木) 19:17:30.13 ID:bwSkQtN1.net]
>>265
>また、実際に割ってみる以外の方法も色々と存在する
私の初等的な教科書にはウィルソンの定理の証明が載っていました、>>254 はちょっと勇み足でしたね

>>266
>無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さ
まあ、認めましょう

285 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 19:18:20.83 ID:cffvEFbc.net]
>>279
そう思うってことは上限値以外の差がわからんて事だね
決定的な違いがある

286 名前:デフォルトの名無しさん [2019/12/12(木) 20:55:40.30 ID:uIjgN9ep.net]
お題:

(A) 階乗の下z桁がすべて0となるような最小の自然数を、z = 1, 12, 123, 1234, 12345,
123456, 1234567, 12345678, 123456789の各場合について求めよ。存在しないときは
そう表示せよ。

(B) (A)の「下z桁がすべて0となる」という条件を「0である桁がz個となる」に置き換えて解け。


(A)はちょっと考えれば簡単に解ける。(B)はどうか知らない。多桁整数計算ができるJuliaでは
z = 12345までは力任せでも求められたが。

287 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 21:21:19.99 ID:qa03h3dy.net]
5で割っていく感じだから
整数無視して無限に割ると
おおまかに4で割った感じの数0が並ぶ
126! は4で割って31ぐらい

288 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 22:14:34.83 ID:WrPVO4K2.net]
連投論破野郎が論破されてて草



289 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 23:15:10.76 ID:UvCIGzud.net]
(A)だけ C++
https://ideone.com/LTC90E

290 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 23:18:50.66 ID:UvCIGzud.net]
(B)は実際に下限から順番に計算していかないとダメじゃないか?

291 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 23:52:01.98 ID:UvCIGzud.net]
n ! のゼロの個数は大雑把にはこのくらい
log_10(n !) / 10 + n * 9 / 40

逆算すれば大体の値はわかる
でも最小値だから正確に求めるのには使えない

292 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 18:36:38.11 ID:0Lb/VhZx.net]
[お題]
今月(2019/12)の13日は金曜日。
開始年月と終了年月が与えられる。年は西暦、年月区切りは"/"。
開始年月一日から終了年月末日の間で"13日の金曜日"は何回あるか。
現在のグレゴリオ歴ルールで、終了年月末日まで変わらないとする。

制約: 1970 <= 年 <= 300億, 1 <= 月 <= 12, 開始年月 <= 終了年月

1) 2019/1 2019/12 --> 2   // 今年は9月と12月が該当
2) 1980/1 2012/12 --> 57
3) 213456/8 453212/4 --> 412380
4) 2000/1 2399/12 -->?
5) 2000/11 2800/9 -->?
6) 123456789/11 7301177081/10 -->?
7) 1970/1 30000000000/12 --> 51599996613


※数十万年程度だと力技だけで回っちゃうので、難易度調整で300億に。
 wikiの"グレゴリオ歴#暦法" https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6#%E6%9A%A6%E6%B3%95

293 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 20:06:08.48 ID:KAf60mjk.net]
300億にしても年の曜日は14パターンしか無いのであっという間に解ける気が…
曜日は400年周期だから400年分求めればあとは割り算するだけかな?

294 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 20:15:02.20 ID:QuzLYYNu.net]
C++
https://ideone.com/33NYDY

295 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 20:16:51.71 ID:QuzLYYNu.net]
>>289
今日や

296 名前:らないとダメだよ []
[ここ壊れてます]

297 名前:デフォルトの名無しさん [2019/12/13(金) 20:32:32.43 ID:7JZ8Vcg3.net]
>>288
ずるいやり方だが、取り敢えずPowerShellに
 1..12 |? {([DateTime]"2000/$_/13").DayOfWeek -eq "Friday"}
 1..12 |? {([DateTime]"2400/$_/13").DayOfWeek -eq "Friday"}
と打ち込んでみると、
 10
 10
と表示され、2000年と2400年の13日の金曜日は10月で一致する。
これと閏年調整のパターンが400年周期であることを組み合わせると、
13日の金曜日の出現パターンも400年周期になることが分かる。
だから、400年分の表を作ってしまえば、遅いPowerShellでも余裕で解ける。
https://ideone.com/oV7JFk

--- 実行結果 ---
2019/1 2019/12 -> 2
1980/1 2012/12 -> 57
213456/8 453212/4 -> 412380
2000/1 2399/12 -> 688
2000/11 2800/9 -> 1375
123456789/11 7301177081/10 -> 12345678901
1970/1 30000000000/12 -> 51599996613

298 名前:デフォルトの名無しさん [2019/12/13(金) 20:57:37.29 ID:7JZ8Vcg3.net]
>>285
正解。例によってRで簡潔に書いた解答例: https://ideone.com/RhEtiC

>>287
やっぱり無理か。ちなみに、Juliaでz = 12345まで力任せで求めるプログラム
https://ideone.com/iqMYLa

--- 実行結果 ---
階乗の0である桁が1個になる最小値は5です。
階乗の0である桁が12個になる最小値は37です。
階乗の0である桁が123個になる最小値は299です。
階乗の0である桁が1234個になる最小値は2414です。
階乗の0である桁が12345個になる最小値は20177です。



299 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 21:27:38.91 ID:QuzLYYNu.net]
>>293

>>287の式に20177を入れると12349.7
かなりいい線行ってる

300 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 22:22:01.90 ID:QuzLYYNu.net]
123456個は存在しない

301 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:21:15.30 ID:QuzLYYNu.net]
123457桁になる 30484!
から
下位に0が123457個続く 493840!
までの間に存在しない事を示せば
存在しない証明になりますが
もっと範囲を絞った証明は出来ないですかねえ

確率的には>>287の付近だけ調べれば良いんですが...

302 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:47:17.94 ID:r78PztnN.net]
全部調べる感じでぶん回してるけど1234567までが長いお(´・ω・`) (123456は>>295の言う通り出なかった)
1時間ぶん回して900000!まで行ったが…

303 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:49:02.36 ID:r2S5lo/C.net]
数学でワープできる分手計算のほうが早い

304 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:49:38.96 ID:QuzLYYNu.net]
kwsk

305 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:50:22.63 ID:r2S5lo/C.net]
>283

306 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:52:09.33 ID:QuzLYYNu.net]
(A)は解決済み
(B)の話

307 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:53:42.34 ID:QuzLYYNu.net]
数学で絞れるのは>>296くらいかと

308 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:56:32.85 ID:QuzLYYNu.net]
下限の n! を計算するのは速い
そこから順番に1個ずつnを増やしていって
0を数えていかないとならない

見つからなければ上限までずっと



309 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:59:51.46 ID:QuzLYYNu.net]
ちなみに私、東大の数学科卒なんで

310 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 00:07:59.08 ID:ruM/1CH5.net]
ワープ
(* 4 1234567) 4938268
(/ 4938268 5.0) 987653.6
(/ 987653 5.0) 197530.6
(/ 197530 5.0) 39506.0
(/ 39506 5.0) 7901.2
(/ 7901 5.0) 1580.2
(/ 1580 5.0) 316.0
(/ 316 5.0) 63.2
(/ 63 5.0) 12.6
(/ 12 5.0) 2.4
(+ 987653 197530 39506 7901 1580 316 63 12 2) 1234563

311 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 00:14:15.42 ID:03SKvnKb.net]
>>305
だからそれは>>282の(A)の話じゃろ…

312 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 00:15:48.22 ID:ruM/1CH5.net]
Bの話か

313 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 02:58:36 ID:03SKvnKb.net]
階乗の0である桁が1234567個になる最小値は1542987です。
お、出た…4時間か

314 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 03:55:22 ID:DhSlagHw.net]
お題: 目覚まし時計の現在時刻とアラーム時刻が入力されるので、待機時間を出力しなさい

例:
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時間 = 06:00

現在時刻 = 22:00
アラーム時刻 = 04:00
待機時間 = 06:00

315 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 09:12:53.23 ID:ruM/1CH5.net]
>>309
これだな
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg

~/bin/sleep.pl

316 名前:10:00
2909 00:48:29

のように使ってる
[]
[ここ壊れてます]

317 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 09:59:37.97 ID:Lp9CT80F.net]
>>304
進振り何点だった? 連投アスペ君

318 名前:デフォルトの名無しさん [2019/12/14(土) 22:12:52.90 ID:8CJijD11.net]
>>309
この手の処理はPowerShellが得意だな。

function WaitingTime($now, $alarm)
{
  $wait = [DateTime]$alarm - [DateTime]$now
  if ($wait -lt 0) {$wait += [TimeSpan]"12:00" + [TimeSpan]"12:00"}
  "現在時刻 = $now"
  "アラーム時刻 = $alarm"
  "待機時刻 = $wait"
  ""
}

WaitingTime 10:00 16:00
WaitingTime 22:00 4:00
WaitingTime 12:34:56 1:23:45

--- 実行結果 ---
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時刻 = 06:00:00

現在時刻 = 22:00
アラーム時刻 = 4:00
待機時刻 = 06:00:00

現在時刻 = 12:34:56
アラーム時刻 = 1:23:45
待機時刻 = 12:48:49



319 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 00:16:05 ID:K3IRPfAN.net]
>>312
キャスト出来るんだな
楽そう

320 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 06:09:40 ID:K3IRPfAN.net]
お題: あなたは研究所で助手をしています
ある日、博士からこんな手紙が届きました

 助手よ。この数値の名前を教えて欲しい
 16776960

あなたは博士に返事を書こうと思います
その返事の内容をお答えください

321 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 07:44:00 ID:VJoyKt1C.net]
>>314 直感
Yellow

322 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 10:09:42 ID:/SOvb5b/.net]
黄色だな

323 名前:デフォルトの名無しさん [2019/12/15(日) 11:56:51.84 ID:wptEtnNg.net]
お題
与えられた自然数の0を全て右端に寄せる

2019 -> 2190
102030 -> 123000
123 -> 123

324 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 12:02:23.68 ID:fpSJINfx.net]
>>309
Ruby で、

require 'active_support/time'

def calculate_time_span( now, alarm )
current = Time.now
now_time = Time.parse( now, current ) #=> 2019-12-15 22:00:00 +0900
alarm_time = Time.parse( alarm, current ) #=> 2019-12-15 04:00:00 +0900

diff_time = alarm_time - now_time
# アラームが翌日の場合
diff_time = alarm_time.tomorrow - now_time if diff_time < 0

Time.at( diff_time ).utc.strftime( '%H:%M' )
end

inputs = %w(10:00 16:00 22:00 04:00) # (現在時刻, アラーム時刻)の組
inputs.each_slice( 2 ) do |now, alarm| # 2個ずつ処理する
puts calculate_time_span( now, alarm )
end

325 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 13:16:18.52 ID:VJoyKt1C.net]
>>309 Ruby
def waitTime( n, a )
Time.at( (a - n) % 86400 ).utc
end

326 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 15:13:57.70 ID:KhVK4v3Y.net]
>>309
https://ideone.com/cAF5X7
C++。あってるかな?

327 名前:デフォルトの名無しさん [2019/12/15(日) 15:21:49.83 ID:yZPHpztp.net]
>>317 Common Lisp
https://ideone.com/FjISQ9

328 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 15:38:04.40 ID:KhVK4v3Y.net]
>>317
https://ideone.com/rUuquJ
C++。できてるかな?



329 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 16:45:12.24 ID:K3IRPfAN.net]
>>315-316
正解

330 名前:デフォルトの名無しさん [2019/12/15(日) 20:15:30.36 ID:IFqyyeL5.net]
>>317
これもPowerShellで簡単。

function f($n)
{
  $m = -join([char[]]"$n" |? {$_ -ne "0"})
  ($m += "0" * ("$n".length - $m.length))
}

f 2019; f 102030; f 123






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef