[過去ログ] プログラミングのお題スレ Part20 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
191
(3): 96 2021/09/25(土)22:19 ID:qK5TmKac(1) AAS
>>186 Perl5

use feature qw{signatures say};
no warnings 'experimental';
sub s($a, $b, @a) { @a ? $a + &d($b, @a) : $a + $b }
sub d($a, $b, @a) { @a ? $a / &s($b, @a) : $a / $b }
say &s(/(\d+)/g) for <DATA>;
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
省7
195: 96 2021/09/26(日)11:06 ID:ROfWiNc+(1) AAS
>>186 Perl5、>>191だと分母が大きい値になるテストケースで下の桁が例解と違ってくるので、通分を下から再帰的に行って
最後に割り算するようにした。また数値の個数が偶数だった場合には0を補うようにした

use feature qw{signatures say}; no warnings 'experimental';
sub f($a, $b, $c = 0, @r) {
 if (@r) {
  ($c, $e) = f($c, @r);
  $b *= $e;
 }
 ($a * $c + $b), $c;
}
省14
196
(1): 2021/09/26(日)13:52 ID:Db797RWb(1/2) AAS
すいません
>>191は例題おかしいので数字合わないですね
気にしないでください
最後の例では最後の項の100抜くか、最後に21を追加してください

100抜いた場合は
4317632 / 1374345 = 3.14159254044654
21追加した場合は
54743776 / 17425485 = 3.1415926730303347

になると思います
>>191の例は
省2
204: 2021/09/26(日)21:58 ID:Db797RWb(2/2) AAS
>>196
いまレス読み返したらアンカー間違ってるorz
>>196>>191と書いてあるのは全部>>186宛の自己レスです
191さんすいません
ちなみにやっぱり186の数値

3.141593311879928

は最後の部分を.../(17+81/(19+100/(0))))..として処理した値でした
100/0が∞になって17+81/(19+∞) = 17となって結局17で打ち切った場合の答えになってました
17で打切った場合

3763456 / 1197945 = 3.1415933118799275
省1
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.420s*