[過去ログ] プログラミングのお題スレ Part15 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
514
(8): 2019/09/21(土)16:12 ID:ZyFDPzPp(1) AAS
お題:正の整数が与えられるので、英語の序数に変換せよ
1 => 1st
23 => 23rd
12 => 12th
515
(1): 2019/09/21(土)16:40 ID:6wFtRpPA(3/5) AAS
>>514 Perl5

%o = qw{1 st 2 nd 3 rd};
$o = $o{$_}//'th', print "$_$o\n" for 1..10,12,23;

実行
~ $ perl 15_514.pl
1st
2nd
3rd
4th
5th
省7
516: 2019/09/21(土)16:54 ID:6wFtRpPA(4/5) AAS
>>514 Perl5、 >>515 はもう少しコンパクトに書けた

%o = qw{1 st 2 nd 3 rd};
printf "$_%s\n", $o{$_}//'th' for 1..10,12,23;
517: 2019/09/21(土)17:38 ID:uZ0K83Mw(2/2) AAS
>>514 ruby
https://ideone.com/3Mupna
518: 2019/09/21(土)18:24 ID:9SoaGQ4l(1) AAS
>>504
Common Lisp https://ideone.com/VW5xja
Perl https://ideone.com/kfn4xI
519
(1): 2019/09/21(土)19:12 ID:AojYT9zq(1) AAS
1st 2nd 3rd
11th 12th 13th
21st 22nd 23rd
101st 102nd 103rd
111th 112th 113th
121st 122nd 123rd

皆さんここらへん大丈夫?
520: 2019/09/21(土)19:41 ID:6wFtRpPA(5/5) AAS
>>514 Perl5、>>519 で指摘された誤りの修正 テヘペロ

%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123) {
 /(\d?)(\d)$/;
 printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}

実行結果
~ $ perl 15_514.pl
1 => 1st
2 => 2nd
省17
521
(7): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/09/21(土)20:51 ID:BmADEcuL(1/3) AAS
お題: 与えられた西暦年月日を年号年月日に変換しなさい。ただし、変換するのは大正時代から令和までとし、範囲外であればERRORを表示しなさい。
522
(8): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/09/21(土)21:04 ID:BmADEcuL(2/3) AAS
お題: YYYY/MM/DD形式で与えられた西暦年月日の文字列が正しい年月日を表しているかどうか判定せよ。
523
(3): 蟻人間 ◆T6xkBnTXz7B0 2019/09/21(土)21:24 ID:BmADEcuL(3/3) AAS
>>522 >>521の順に解いて下さい。

1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
524
(1): 2019/09/21(土)22:12 ID:y97V3EOz(1/2) AAS
>>522 Perl5

use Time::Piece;
for (<DATA>) {
 chomp;
 my $t;
 eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
 $t //= 'Invalid';
 print "$_: $t\n";
}
__DATA__
省13
525: 524 2019/09/21(土)22:29 ID:y97V3EOz(2/2) AAS
>>524

Time::Piece->strptime は
1900/01/01 よりも前の日付だと
正しい西暦の年月日を入力しても
parse結果が不定となってしまうということがさっき分かりました。
したがって残念ながら>>524のcodeは>>522の題意を満たしているとは
言いがたいものでした。ゴメンね〜
526: 2019/09/21(土)22:37 ID:tuxPF//K(1/2) AAS
>>521-523 Java
https://ideone.com/5XMVPB
527
(1): 蟻人間 ◆T6xkBnTXz7B0 2019/09/21(土)22:44 ID:7nrsNPcd(1) AAS
令和1年を令和元年にしないといけないという落とし穴があるようだ。
528: 2019/09/21(土)22:45 ID:Awwp+36u(1) AAS
>>504 Ruby

p $<.map(&:chomp).yield_self{|e| e.uniq.map{|v| [v, e.count(v)]}}

# => [["Hoge", 2], ["Fuga", 3], ["Foo", 2], ["Bar", 1]]
529: 2019/09/21(土)23:03 ID:tuxPF//K(2/2) AAS
>>527 Java
https://ideone.com/q1JPJ5
しゅうせいしまった
530: 2019/09/22(日)01:12 ID:35++XhB6(1/6) AAS
>>496 Squeak Smalltalk

#('a b c 44' 'x y 33' 'z 22' '11') sortBy: [:x | x splitInteger last] ascending

"=> an OrderedCollection('11' 'z 22' 'x y 33' 'a b c 44') "
531: 2019/09/22(日)01:25 ID:35++XhB6(2/6) AAS
>>504 Pharo/Squeak Smalltalk

'Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga' lines asBag sortedElements

"=> {'Bar'->1 . 'Foo'->2 . 'Fuga'->3 . 'Hoge'->2} "
532: 2019/09/22(日)01:56 ID:35++XhB6(3/6) AAS
>>467 Pharo/Squeak Smalltalk

| fn |

fn := [:str | String streamContents: [:ss |
(str as: RunArray) runsAndValuesDo: [:n :x |
ss nextPut: x; nextPutAll: (n = 1 ifTrue: [''] ifFalse: [n asString])
]
]].

fn value: 'あいうえお'. "=> 'あいうえお' "
fn value: 'ああいいうう'. "=> 'あ2い2う2' "
fn value: 'あいうあいう'. "=> 'あいうあいう' "
533
(1): 2019/09/22(日)08:19 ID:uuB9aO9i(1/2) AAS
>>514 Ruby

suffixes = %w[th st nd rd]
f = -> n {(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)}

[
  1, 2, 3, 4, 11, 12, 13, 21, 22, 23, 101, 102, 103, 111, 112, 113, 121, 122, 123
].each{|v| puts '%1$d => %1$d%2$s' % [v, suffixes[f[v]]]}

# =>
1 => 1st
2 => 2nd
3 => 3rd
省16
1-
あと 469 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s