プログラミングのお題スレ Part22 (880レス)
1-

106: 蟻人間 ◆T6xkBnTXz7B0 2023/09/28(木)21:17 ID:yc7Vl2N1(1) AAS
お題: 指定されたフォントのひらがなの各文字について
ひらがなの線に囲まれて閉じた領域の個数を調べ、最もその個数の多い文字ベスト3を出力せよ。
107: 2023/09/28(木)22:53 ID:8VuS2PIw(1) AAS
自分でやれ
いやできないかすまん
108: 2023/09/28(木)22:59 ID:isk1iJ0r(1) AAS
pythonならcv2使ってやるかな
109: 17 2023/09/29(金)10:58 ID:eBy6R6wt(1) AAS
>>97
bash のコマンドラインで以下のように入力すると標準入力から入力して「、」が「,」に、「。」が改行に変換されて標準出力に出力される。
(起動する環境は bash でなければならないということはないと思うが、他のシェルは確認していない)。

sed 's/、/,/g;s/。/\n/g'

もちろん日本語入出力可能な端末を使用して、尚且つ sed がその入力をまともに受け付けてくれなければちゃんと動かない。
110: 2023/09/29(金)11:02 ID:F8aJXNq9(1) AAS
お題: 指定されたフォントのひらがなの各文字について
ひらがなの線に囲まれて閉じた領域の面積を調べ、各文字毎にそれぞれの面積の順序を最も大きい物から順に出力せよ。
またその情報を元に輪郭のhierarchy情報をcv2で利用出来る形で出力せよ
111
(5): 2023/09/30(土)17:32 ID:xxjzuZuq(1) AAS
お題
文字列が入力されます
赤と緑を入れ替えて
黒と白を入れ替えて
黄と青を入れ替えてください


入力: 緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ
出力: 赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ
112: 2023/09/30(土)18:00 ID:oqu6hf3+(1) AAS
>>111 node

const swap = (text, [w1, w2]) => text.split(w1).map(v => v.replaceAll(w2, w1)).join(w2)

const swapAll = (text, rules) => rules.reduce(swap, text)

const text = '緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ'

const rules = [['赤', '緑'], ['黒', '白'], ['黄', '青']]
省4
113: 2023/09/30(土)19:24 ID:t2v1jL5l(1) AAS
>>111
R
外部リンク:www.ideone.com
114: 2023/09/30(土)20:00 ID:iuoy3pEW(1) AAS
>>111 ウェブブラウザのJavaScript
外部リンク:pastebin.com

ユーザースクリプトの体裁で書いたけどブラウザーのConsoleでも動かせる
Firefox: Ctrl+Shift+K
Chrome: Ctrl+Shift+J
2chスレ:tech を開いてそこで実行
結果はレスに直接追記

重複がないからXPathのtranslate()でいけるな思った、それだけ
115: 17 2023/10/02(月)01:36 ID:hWT/DRlk(1/2) AAS
>>101
Kotlin
外部リンク:paiza.io
116
(1): 17 2023/10/02(月)01:52 ID:hWT/DRlk(2/2) AAS
>>104
1. qrencode というプログラムをインストールする。(例: RedHat系Linuxなら yum install qrencode)

2. qrencode で出力に ansi 等を指定して文字列で出力する。

例: qrencode -t ansi やっほー

3. 画面に出て来たQRコードをスマホで撮影する等して確認する。

4. 終わり。
117: 2023/10/02(月)11:46 ID:0odvDMYE(1) AAS
>>116
よくできました
蟻ポイント30
118: 2023/10/06(金)16:54 ID:jg1c5xSH(1/2) AAS
[クライシスアクター」「豊島保養所」←画像検索&拡散!

他スレに丸ごとコピペよろしっく!!
ネットでできる反レプティリアン・反イルミ活動です!!!!!
動画サイトのコメ欄もねらい目だぞーーーー!!!!!!!
119: 2023/10/06(金)16:54 ID:jg1c5xSH(2/2) AAS
[クライシスアクター」「豊島保養所」←画像検索&拡散!

他スレに丸ごとコピペよろしく!!
ネットでできる反レプティリアン・反イルミ活動です!!!!!
動画サイトのコメ欄もねらい目だぞ!!!!!!!
120
(1): 2023/10/08(日)19:28 ID:faQf3SiN(1) AAS
お題:n階建てのビルに定員4人のエレベーターがある。エレベーターは各階でボタンが押されるとその階に向かう。住人達はエレベータを呼んで乗るとエレベーター内で次に向かう階へのボタンを押す。ボタンを押すのは乗員全員である。乗るのを待っている住人が定員より多かった場合、エレベーターは乗れなかった住人を優先的に回収する。住人は列の先頭から順番にエレベーターに乗り込む。エレベーターは乗員を降ろしている間に住人を追加で乗せることはなく、すべての乗員を降ろしてから次の住人の回収に向かうものとする。

もっとも効率がいいエレベーターの停止順序を求め、入力に対して停止階のリストを出力せよ。
エレベーターの初期位置は1階とする。

入力
階数
乗員数 住人たちがいる階 乗員iが向かう階 乗員iが向かう階 …
5
1 1 5
2 4 3 2
3 2 1 3 5
省9
121
(1): 9 2023/10/08(日)20:24 ID:zYJ3wh+h(1) AAS
>>120
「もっとも効率がいいエレベーターの停止順序」とは?
1.停止回数がもっとも少ない
2.移動した階数の和が最も小さい
3.ほか
など、どのような指標?
122: 2023/10/09(月)13:56 ID:V7NN5mnX(1) AAS
>>121
2.移動した階数の和が最も小さい
123: 2023/10/09(月)19:10 ID:5dE8x2G+(1/2) AAS
>>85
C#
外部リンク:paiza.io
124: 2023/10/09(月)22:18 ID:5dE8x2G+(2/2) AAS
>>111
C#
外部リンク:paiza.io
125: 2023/10/12(木)11:02 ID:u59ybXeV(1) AAS
スイカゲームを自動操縦するプログラムを造れ
126: 2023/10/12(木)12:31 ID:hnj5q8Ch(1) AAS
while (true) push(BUTTON_A)
127
(4): 2023/10/14(土)00:00 ID:sMwx6jpS(1) AAS
お題:角カッコの列が入力されるのでカッコの対応が取れていたら1,取れていなかったら0と表示せよ

< [[]]
> 1

< [[]
> 0
128: 17 2023/10/14(土)02:22 ID:BgrcFKKf(1/2) AAS
>>127
Perl

bash 等のシェルのコマンドラインで以下のように入力すると標準入力から入力して結果を標準出力に出力する。

perl -ne '$n=0;while(/(.)/g){if($1eq"["){$n++}elsif($1eq"]"){$n--}}$f=$n==0?1:0;print"$f\n"'

実行例
[[]]
1
[[]
0
[[[[]][[]]]
省3
129: 17 2023/10/14(土)04:16 ID:BgrcFKKf(2/2) AAS
>>111
Kotlin
外部リンク:paiza.io
130: 2023/10/14(土)10:19 ID:BRbCCPQd(1) AAS
>>127 Ruby
%W( [[]] [[] [[[[]][[]]] [[[[]][[]]]] ][ #{} ).each{|s|
w = s.dup
{} while w.sub!( /\[\]/, '' )
puts "#{(s != '' && w == '')? 1 : 0} #{s.inspect}"
}

# 1 "[[]]"
# 0 "[[]"
# 0 "[[[[]][[]]]"
# 1 "[[[[]][[]]]]"
省2
131: 2023/10/14(土)22:38 ID:5dUK8HoW(1) AAS
>>127
C#
外部リンク:paiza.io
132
(1): 2023/10/16(月)08:51 ID:kgcCjrnK(1) AAS
1)
BY
RG

2)
RG
BY

3)
GR
YB

1-3を回転対称で同じとみなせるグループと線対称で同じとみなせるグループに分類せよ
省2
133
(1): 2023/10/17(火)07:02 ID:InaHR8fg(1) AAS
>>132 Ruby
外部リンク:ideone.com
134
(3): 2023/10/18(水)20:40 ID:4ifgnZXl(1/4) AAS
お題:Pythonのmath.ulp()と同機能の関数
引数が正規化数限定のサブセットでも可(その旨を明記)。
Pythonで実装する場合は(もちろん)math.ulp()を使ってはならない。
135
(1): 134 2023/10/18(水)20:46 ID:4ifgnZXl(2/4) AAS
簡単なお題:
>>133のサブセット(求めたulpも正規化数限定)
136
(1): 2023/10/18(水)20:56 ID:L3TY2GGf(1) AAS
import struct

def my_ulp(x):
# 浮動小数点数xをバイト列に変換
b = struct.pack("d", x)
# バイト列を整数に変換
i = int.from_bytes(b, "little")
# 符号部(1ビット)を取り出す
s = i >> 63
# 指数部(11ビット)を取り出す
e = (i >> 52) & 0x7ff
省13
137: 134 2023/10/18(水)21:44 ID:4ifgnZXl(3/4) AAS
>>135
間違えましたorz
138: 134 2023/10/18(水)21:52 ID:4ifgnZXl(4/4) AAS
>>136
math.ulp()は符号を戻さないらしいです:
ulp(1) == ulp(-1)
139
(1): 2023/10/21(土)04:08 ID:TaroWUwV(1) AAS
お題:文字列「せんだ」「みつを」「ナハナハ」がランダムに100行入力される。せんだ、みつを、ナハナハが順番に入力されたときに1と一行出力せよ
140: 2023/10/21(土)23:03 ID:x0YGunAE(1) AAS
>>139
C#
外部リンク:paiza.io
141
(2): 2023/10/25(水)07:23 ID:gFkqcLnH(1/3) AAS
お題:
(1)Python3.12以降の、math.nextafter()のサブセット
(実装はPythonでなくても構いません)
64ビット長程度の整数iを引数として、
a)iがゼロ:foo(i) = 0.0
b)i > 0:foo(i) = nextafter(0, inf, steps=i)
c)i < 0:foo(i) = nextafter(0, -inf, steps=-i)
を満たすfoo()を書く。
Python3.12を使う場合は、nextafter()を使ってはならない。

(2)(1)の逆関数。
142: 141 2023/10/25(水)07:27 ID:gFkqcLnH(2/3) AAS
補足:(1)(2)いずれも実用的な時間内で求める事(steps=1相当のnextafter()をループで回すのは不可)。
143
(1): 2023/10/25(水)12:47 ID:Bgy3SEXp(1) AAS
なんだnextafterって
144: 141 2023/10/25(水)23:22 ID:gFkqcLnH(3/3) AAS
>>143
nextafter()は、浮動小数点数の、(数直線上での)「隣」を求めるやつですね(C99以降?)。
Python3.12のやつは、隣の隣の隣の…を求める事が出来る様に拡張されました。
145: 21-923 2023/10/26(木)00:31 ID:7aLp+Ojb(1) AAS
前スレの補足:
V8やLLVMは、自前でstrtod()的なものを実装してました。
外部リンク:arxiv.org
146: 2023/10/28(土)20:54 ID:U0JINWpQ(1) AAS
>>101 octave
外部リンク:ideone.com
function s = f(s, i)
s(circshift(i, -1, 2)) = s(i);
end

>>127 ocaml
外部リンク:ideone.com
let chars s =
let rec aux acc i =
if i < 0 then acc else aux (s.[i] :: acc) (i - 1)
省8
147: 2023/10/31(火)00:00 ID:mywig6Xf(1) AAS
>>3 c
外部リンク:ideone.com
int has26(const char *p) {
int c, count[26] = {0};
for (; c = tolower(*p); p++) if (isalpha(c)) count[c - 'a']++;
for (c = 'a'; c <= 'z'; c++) if (count[c - 'a'] < 1) return 0;
return 1;
}
const char *f(const char **lines, int n) {
const char *found = 0;
省9
148
(1): 2023/11/02(木)14:01 ID:4TnUpiLT(1) AAS
お題
画像リンク[png]:i.imgur.com
149: 17 2023/11/05(日)02:55 ID:w6RhJs5K(1/2) AAS
>>148
ChatGPT にそのままテキストを読ませたらこう答えた。
-------------------------------------------------------------------------------------------------
通学に自転車を使わない学生は34人、自転車を使うがバスを使わない学生は39人、バスを使うが自転車を使わない学生は18人です。

100人の学生全体からこれらの人数を引いた残りの学生がバスと自転車の両方を使っている学生の数です。

100人 - 34人 (自転車を使わない学生) - 39人 (バスを使わない学生) - 18人 (自転車を使わない学生) = 9人

したがって、通学にバスと自転車の両方を使う学生は9人です。
-------------------------------------------------------------------------------------------------

ここで徒歩については考慮しないのかとツッコミを入れたらこう答えた。
省3
150: 17 2023/11/05(日)02:58 ID:w6RhJs5K(2/2) AAS
そして更にこういうツッコミを入れる。

最初の34人は自転車を使っていないだけで密かにバスを使っているかも知れないのだが、そのことは考慮しないのか?

ChatGPT
申し訳ありません、私の以前の回答は不完全でした。確かに、最初の34人のうち自転車を使っていないという情報だけでは、彼らがバスを使っているかどうかを確定することはできません。そのため、正確な答えを得るためには追加の情報が必要です。

もし最初の34人のうち何人かが実際にはバスを利用している場合、それを考慮する必要があります。与えられた情報だけからは、バスと自転車の両方を使う学生の正確な数を特定することはできません。必要な情報が揃わない限り、正確な答えを提供することはできません。
151
(2): 2023/11/06(月)00:02 ID:fuk9k4cf(1) AAS
お題:単方向リストを逆順にせよ
152: 2023/11/06(月)00:48 ID:uPzAm2Gi(1) AAS
>>151
Java
外部リンク:paiza.io
153
(1): 2023/11/11(土)20:39 ID:iU/7lT3J(1/2) AAS
>>85
Ruby で作った。
FileUtils::DryRun を使っているので、実際には変更されません

require 'fileutils'

HEAD = 'abc' # 先頭文字
EXT = '.mp4' # 末尾の拡張子
HEAD_LEN = HEAD.length # 3文字
EXT_LEN = EXT.length # 4文字

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
省12
154: 153 2023/11/11(土)20:41 ID:iU/7lT3J(2/2) AAS
# 変更後のファイル名の配列
fname_dest_ary = fname_src_ary.map do |file_name|
str = String.new( file_name )
# 先頭文字の abc と、末尾の .mp4 を取り除いて、数字だけにする
str.slice!(-EXT_LEN, EXT_LEN)
str.slice!(0, HEAD_LEN)
# 10進数の数値型に変換してから、3桁0埋め文字にする
HEAD + "%03d" % Integer( str, 10 ) + EXT
end

require 'set'
省18
155: 17 2023/11/21(火)04:31 ID:aOoah041(1) AAS
>>151
Kotlin
外部リンク:paiza.io
156
(10): 2023/11/25(土)20:07 ID:zpqT0hBE(1) AAS
お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ
擬似乱数列生成法については指定しないものとする

ruby
外部リンク:ideone.com
require 'set'
r = 1..9999
c = r.to_a.fill(0)
s = r.to_set
while !s.empty?
n = rand(r)
省6
157
(1): 2023/11/25(土)22:17 ID:Al0Rw+0l(1) AAS
>>156
R
外部リンク:ideone.com
158
(2): 2023/11/26(日)10:44 ID:dd78ITN+(1/2) AAS
プログラミングの依頼はここでいいでしょうか。
ココナラで依頼したのですが見送りになってしまいました。
お金は出すので製品版を作って欲しいです。
できないなら何が定義できていないのか教えて下さい。

AIによる詩作成

まずAIが詩を作成するための学習ツールを作ります
AIがリンゴの形相を分解するには辞書が必要となる
リンゴを検索し辞書を比較し関連性の高いワード
リンゴ⊇(赤い、丸い、果物…)を拾うのだ
これが学習ツールであり
省8
159: 2023/11/26(日)10:50 ID:d/KzVdDP(1) AAS
>>156
設定があいまいなんだが
shuffleとかselectとかchoice系なら
高々9999回で必ず全部出る
160: 2023/11/26(日)11:41 ID:1iIVw+fD(1) AAS
>>156
Java
外部リンク:paiza.io
161: 158 2023/11/26(日)12:29 ID:dd78ITN+(2/2) AAS
製品版なら10万円出します
AIでなくても詩作成ツールでいいです
162
(1): 2023/11/26(日)13:43 ID:4uIV+oN2(1) AAS
>>156 lisp
外部リンク:ideone.com
163: 2023/11/26(日)21:12 ID:SfQeb61a(1) AAS
>>157
これだと150001回以上となる場合が本来よりも起こりにくくなってしまい駄目だった。
活かしながら書き換えると 外部リンク:ideone.com
164: 17 2023/11/27(月)10:19 ID:VB+FhCy9(1/3) AAS
>>158
ここは誰かがお題を出して答えたい人が答えるスレなので、どんなお題を書いても構わないが、誰も答えないことはよくある。
また、バグがあっても気づかずにそのままになる事もある。多分大半のプログラムは作った本人以外は検証しないので。
ごく稀に他人がバグを発見することはあるが、発見されてもわざわざ指摘するとは限らないし修正もされないかも知れない。
165: 17 2023/11/27(月)10:35 ID:VB+FhCy9(2/3) AAS
>>156
Kotlin
外部リンク:paiza.io

こんなので良いのか?やっぱ Set とか使わずにやった方が良いかな?
166: 2023/11/27(月)12:57 ID:lzpjbGZv(1) AAS
>>156 Ruby
>>156 の例が個別の出現回数をカウントしていたのでそれに合わせた

c = [0] * 9999
9999.times {
redo unless ( c[ rand(9999) ] += 1 ) == 1
}
p c.sum
167: 17 2023/11/27(月)13:09 ID:VB+FhCy9(3/3) AAS
>>156
また Kotlin
外部リンク:paiza.io

今度は add ではなく remove でやるようにした。
これでその Ruby の例に近くはなるがカウントする方法は前と同じで個別にはやってない。
168: 2023/11/27(月)18:30 ID:O6HTjvgJ(1) AAS
>>156
Perl
perl -E 'for ($r = 9999; $n < $r; $_++) { $h{int(rand($r)) + 1} ||= ++$n }; say'
79596
169: 156 2023/11/27(月)20:35 ID:VuTnBSK2(1) AAS
>>156 c
外部リンク:ideone.com
・lispのひとの(>>162)をパク…参考にしました
・乱数生成部分は 外部リンク[html]:c-faq.com からコピペしました
int main() {
int a[9999] = {0}, size = sizeof a / sizeof *a, sum, min, max, r, i, j, k;
srand(time(0));
#define randi(size) ((int)((double)rand() / ((double)RAND_MAX + 1) * (size)))
for (r = size; 0 < r; ) if (!a[randi(size)]++) r--;
for (sum = min = max = a[0], i = 1; i < size; i++) {
省11
170: 17 2023/11/28(火)15:35 ID:cIauX08C(1) AAS
>>156
今度はC言語
外部リンク:paiza.io

1~9999ではなく実際には0~9998でやっているが、表示する必要もないし一々1足したり後で引いたりも馬鹿らしいのでそのままにした。
171
(5): 2023/11/30(木)06:46 ID:/rzYr39l(1) AAS
お題:英字の羅列された文字列が与えられる。この文字列を分析して数字列を出力せよ。数字の表記ルールは、その文字の両隣の文字がASCIIコードにおける奇数だったら1、そうでなければ0.
172: 2023/11/30(木)09:19 ID:AZ5oWFgm(1) AAS
前提としてエラー入力はなくて
出力は両隣がある時のみでいいのかな

use itertools::{Itertools, assert_equal};

fn convert(input: &[u8]) -> Vec<u8> {
 input
 .iter()
 .tuple_windows()
 .map(|(prev, _curr, next)| (prev & next & 1) + b'0')
 .collect()
}
省4
173: 2023/11/30(木)20:13 ID:tzHzM+FM(1) AAS
>>171 octave
外部リンク:ideone.com
function a = f(s)
o = rem([0 uint8(s) 0], 2) == 1;
a = o(1:end-2) & o(3:end);
end

>>171 c
外部リンク:ideone.com
void f(const char *s, int *out, int *len) {
int i;
省3
174: 2023/11/30(木)20:40 ID:2Igm/ys/(1) AAS
>>R
外部リンク:ideone.com
175: 17 2023/12/02(土)14:30 ID:FLL1Kaqa(1) AAS
>>171
Kotlin
外部リンク:paiza.io

両隣が存在する文字のみを対象に処理をするようにした。なので3文字未満はエラーになる。3文字の場合は2文字目だけを対象にして一つ結果を出す。
176: 2023/12/04(月)20:26 ID:LtCaDuZa(1) AAS
>>171 Ruby
def solution1( str )
a = 0
str.chars.inject(''){|s,c|
s << ( (5 & (a = 7 & a << 1 | c.ord & 1) == 5)? '1' : '0' )
}[2..-1] || ''
end

solution( '' ) #=> ""
solution( 'AB' ) #=> ""
177: 2023/12/08(金)09:07 ID:Fcz3Modv(1) AAS
>>171 lisp
外部リンク:ideone.com
178: 2023/12/10(日)17:41 ID:Dj8Ho2Ik(1) AAS
>>171
C#
外部リンク:paiza.io
179
(6): 2023/12/13(水)09:27 ID:NbIWTS6w(1) AAS
お題
ビールの空きビンをN本集めると新品のビール1本と交換してもらえる

あなたが新品のビールをP本持っている

そのとき、あなたが飲めるビールはR本である

N, Pを引数としてRを返す関数を定義してください
180
(1): 17 2023/12/13(水)15:17 ID:WwinWAeQ(1/3) AAS
>>179
Kotlin または Kotlin script

fun beer(n: Int, p: Int) = p + p / n
181: 17 2023/12/13(水)15:19 ID:WwinWAeQ(2/3) AAS
ごめん。これだと1回分しか計算してないね。ということで >>180 はボツ。
182: 17 2023/12/13(水)15:47 ID:WwinWAeQ(3/3) AAS
>>179
Kotlin
外部リンク:paiza.io

作り直した。
もっと簡略化できそうな感じもしたがやってない。何か画期的な計算方法やアルゴリズムに気付いたらまた作る。
183: 2023/12/13(水)18:37 ID:8Qa5an+7(1) AAS
>>179 Ruby
def solution( n, m )
b = r = n
while (k = b.div( m )) != 0
b += k - k * m
r += k
end
r
end

solution( 5, 3 ) #=> 7
184: 2023/12/14(木)00:01 ID:WyfgSj4g(1) AAS
>>179
外部リンク:ideone.com
let f n p =
let rec aux r p q =
if p = 0 then r else aux (r + p) ((p + q) / n) ((p + q) mod n)
in aux 0 p 0
let () = print_int @@ f 3 5

7
185: 2023/12/14(木)00:03 ID:uNhVrYF2(1) AAS
>>179
R

R <- function(N, P) ((P - 1) * N) %/% (N - 1) + 1
186: 17 2023/12/19(火)15:39 ID:S/sB6wJe(1) AAS
>>179
Kotin
外部リンク:paiza.io

再帰にすればとても簡単だったことに、さっき気付いた。
187
(17): 2024/01/16(火)00:33 ID:n8j0XaXx(1) AAS
お題:時刻の文字列が与えられる。その時刻から1秒後の時刻を出力せよ。


入力:00:00:00
出力:00:00:01
入力:23:59:59
出力:00:00:00
188
(1): 9 2024/01/16(火)02:37 ID:SfyAs2IF(1/2) AAS
>>187 Perl5

use Time::Piece;
use Time::Seconds;
for (qw{00:00:00 23:59:59}) {
 $t = Time::Piece->strptime($_, '%T') + 1;
 print "入力:$_\n出力:", $t->strftime('%T'), "\n";
}

※見易くするためインデントを全角スペースに置換してあります

実行結果
~ $ perl 22_187_1秒後.pl
省4
189: 9 2024/01/16(火)02:38 ID:SfyAs2IF(2/2) AAS
>>188

use Time::Seconds;
これ要らなかった…orz
190: 2024/01/16(火)20:31 ID:76+p6SY+(1/2) AAS
>>187 octave
外部リンク:ideone.com
f = @(s) datestr(addtodate(datenum(s), 1, 'second'), 'HH:MM:SS');
in = ['00:00:00';'23:59:59'], out = f(in)
191: 2024/01/16(火)20:54 ID:OiJoE8pV(1) AAS
>>187 PowerShell
"00:00:00", "23:59:59" |% {[String]([DateTime]$_).AddSeconds(1).TimeOfDay}
192: 2024/01/16(火)21:26 ID:76+p6SY+(2/2) AAS
>>187 ruby
外部リンク:ideone.com
require 'time'
f = -> s {(Time.parse(s) + 1).strftime('%T')}
p ['00:00:00', '23:59:59'].map {|s| [s, f.(s)]}
193: 2024/01/16(火)23:32 ID:+Emu7d1R(1) AAS
>>187 js

const decode = (s) => s.split(":").map(Number);
const encode = (nums) => nums.map((v) => String(v).padStart(2, "0")).join(":");
const inct = (s, sec = 1) => {
const a = decode(s);
const ss = [
{ n: a[0], max: 24 },
{ n: a[1], max: 60 },
{ n: a[2], max: 60 },
];
省14
194: 2024/01/17(水)00:04 ID:g7dwo5vO(1) AAS
>>187 ocaml
外部リンク:ideone.com
let sec_of_hms hms =
let at i = int_of_string (String.sub hms i 2) in at 0 * 60 * 60 + at 3 * 60 + at 6
let hms_of_sec sec =
Printf.sprintf "%02d:%02d:%02d" (sec mod 86400 / 3600) (sec mod 3600 / 60) (sec mod 60)
let (<<) f g x = f (g x)
let f = hms_of_sec << (+) 1 << sec_of_hms
195: 2024/01/17(水)01:45 ID:xvgJymQe(1) AAS
>>187
Rust (date/timeライブラリ不使用版)

fn next_time(cur: &str) -> String {
 let [sec, min, hour] = cur
 .rsplitn(3, ':')
 .map(|s| s.parse().unwrap())
 .zip([60, 60, 24])
 .scan(1, |carry, (mut value, limit)| {
  value += *carry;
  (*carry, value) = if value == limit { (1, 0) } else { (0, value) };
省9
196: 17 2024/01/18(木)03:01 ID:opxINJAy(1) AAS
>>187
Kotlin

Java のライブラリそのまま使ってるだけの怠惰なプログラム

外部リンク:paiza.io
197: 17 2024/01/19(金)19:43 ID:hxZRcaHh(1) AAS
>>187
Kotlin

今度は Java のライブラリは使わずに時分秒を保持するクラスを自分で作ってそこで秒に足すとか文字列にするとかやるようにした。

外部リンク:paiza.io
198: 2024/01/20(土)23:08 ID:PCaU0wMN(1) AAS
>>187 dart 2.3.0
外部リンク:ideone.com
void main() {
var sec_of_hms = (hms) => hms.split(':').fold(0, (acc, s) => acc * 60 + int.parse(s));
var hms_of_sec = (sec) => [sec % 86400 ~/ 3600, sec % 3600 ~/ 60, sec % 60].map((x) => x.toString().padLeft(2, '0')).join(':');
var f = (hms) => hms_of_sec(sec_of_hms(hms) + 1);
print(f('00:00:00'));
print(f('23:59:59'));
}
199: 2024/01/21(日)17:06 ID:BpmEGVkv(1) AAS
>>187
c++
2chスレ:tech
200
(1): 2024/01/21(日)21:15 ID:BWkvMixc(1) AAS
>>187 c
外部リンク:ideone.com
int hmstosec(const char *hms) {
int h, m, s;
return sscanf(hms, "%d:%d:%d", &h, &m, &s) == 3 ? h * 3600 + m * 60 + s : 0;
}
char *sectohms(char *buff, int sec) {
sprintf(buff, "%02d:%02d:%02d", sec % 86400 / 3600, sec % 3600 / 60, sec % 60);
return buff;
}
省18
201: 2024/01/22(月)15:47 ID:PT6/fzaV(1) AAS
>>187 lisp
外部リンク:ideone.com
202: 2024/01/23(火)20:39 ID:8rvcqFQo(1/2) AAS
>>187 gawk
外部リンク:ideone.com
BEGIN {FS=":"}
{print strftime("%T", mktime(sprintf("2024 01 23 %s %s %s", $1, $2, $3)) + 1);}

>>187 sqlite
外部リンク:ideone.com
select time('00:00:00', '+1 second');
select time('23:59:59', '+1 second');

>>187 bash
外部リンク:ideone.com
省3
203: 2024/01/23(火)22:56 ID:8rvcqFQo(2/2) AAS
>>187 pascal
外部リンク:ideone.com
program ideone;
Uses sysutils, dateutils;
function f(hms : string) : string;
begin
f := TimeToStr(IncSecond(StrToTime(hms), 1))
end;
begin
writeln(f('00:00:00'));
省2
204: 2024/01/23(火)23:54 ID:39Fs96AV(1) AAS
>>187を時間ライブラリ無しで作成できている言語は現時点で
193のJavaScript
194のOCaml
195のRust
197のKotlin
198のDart
199のC++
200のC
201のLisp
以上
205: 17 2024/01/24(水)00:08 ID:n4ooUyFj(1) AAS
>>187
Perl

bashのコマンドラインから長い長いワンライナーで。

$ perl -ne 'if(/(\d+):(\d+):(\d+)/){$h=$1;$m=$2;$s=$3;printf"入力:%02d:%02d:%02d\n",$h,$m,$s;$s++;if($s>=60){$m++;$s=0;if($m>=60){$h++;$m=0;if($h>=24){$h=0}}}printf"出力:%02d:%02d:%02d\n",$h,$m,$s}'
1:2:3
入力:01:02:03
出力:01:02:04
0:0:0
入力:00:00:00
出力:00:00:01
省4
1-
あと 675 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.916s*