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

1
(4): 2023/08/03(木)13:52 ID:/xW45k0z(1) AAS
プログラミングのお題スレです。

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

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

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
外部リンク:ideone.com
省11
781: 2025/07/27(日)21:43 ID:w39E9j9Q(1) AAS
>>771
Rust
既に色々と出ているため別の観点からのコード
一時作業メモリ最小 & ソートは1回 & ジェネリック

fn f<T: std::cmp::Ord>(input: &[T]) -> Vec<usize> {
 let len = input.len();

 // ポジションのリスト [0, 1, 2, 3, ... , len-1] を作成
 let mut pos_list: Vec<usize> = (0..len).collect();
 // inputを利用してそのポジションだけをソート
 pos_list.sort_by_key(|&pos| &input[pos]);
省11
782: 777 2025/07/27(日)22:54 ID:YfUjoiLt(1) AAS
>>771 octave ソート一回
外部リンク:ideone.com

>>771 ruby 2.5 ソート一回
外部リンク:ideone.com
783: 警備員[Lv.11] 2025/07/28(月)23:30 ID:uO5vEij8(1) AAS
>>771
>>776をKotlinに変換してKotlinらしくなるように色々省略しただけのもの。
やはり最初からラムダとか考慮されている言語だと色々省略できて分り易くなるね。
外部リンク:paiza.io
784: 2025/07/29(火)00:12 ID:9AXsNEm+(1) AAS
>>771
Rust
外部リンク:ideone.com

バイナリヒープ使うとソート過程で直接リスト作れるけどコード量増えるしヒープソート遅いから実用性は微妙か
C言語ならありかもしれない
785
(1): 2025/07/30(水)21:50 ID:Ug40aZKP(1) AAS
>>771 java
外部リンク:ideone.com
786
(1): 2025/07/31(木)14:56 ID:cLL+G38O(1/2) AAS
>> 771
java
>> 785氏のデータも加えてみた。
外部リンク:ideone.com

ideoneのjavaはバージョン古いのか...
ま、通りがかりにこのスレみつけたのでちょっと書いただけ。
787: 2025/07/31(木)18:54 ID:cLL+G38O(2/2) AAS
ち、勘が鈍った。>>もつけ間違えるし、sage忘れるし。
788: 785 2025/07/31(木)21:15 ID:R3hgrYP8(1) AAS
>>771 java compose乱用
外部リンク:ideone.com
789
(1): 2025/08/03(日)22:00 ID:1jv9m6G7(1) AAS
>>771
java >>786を修正。javaが古いねぇ。
外部リンク:ideone.com
790
(1): 2025/08/04(月)22:42 ID:A9zbJQ8U(1/2) AAS
>>771
java >>789を修正。何度もすいませんね。classをメソッド内に移動。
外部リンク:ideone.com
791: 2025/08/04(月)23:09 ID:A9zbJQ8U(2/2) AAS
>>771
java >>790修正。classだったらメソッドの引数がみえるので修正。recordではできない。
外部リンク:ideone.com
792: 2025/08/05(火)01:04 ID:wgx4FmLX(1) AAS
class ValueWithIndex<U /*extends Comparable<U>*/> implements Comparable<ValueWithIndex<T>> {
ジェネリックは難しい。上のextends Comparable<U>は無くてもよいのだが、無駄でも明記したほうがよさそうなので、
ソースではそうした。
明記しなくとも、Uは正しく推測されているようだ。
793: 2025/08/06(水)17:17 ID:qE4NV2ND(1) AAS
>>771
JavaScript
外部リンク:paiza.io
794: 2025/08/07(木)07:21 ID:W/yAWgo4(1) AAS
これからはメソッドの時代
795: 2025/08/10(日)23:18 ID:FODtZCg5(1) AAS
>>771 scala
外部リンク:ideone.com

>>771 swift
外部リンク:ideone.com
796: 2025/08/11(月)20:38 ID:frWpQyFA(1) AAS
>>771 dart 2.3
外部リンク:ideone.com
・拡張メソッドはDart2.7から
・ideone現状はDart (dart 2.3.0)
797: 2025/08/12(火)21:05 ID:uRUBTkGF(1/2) AAS
>>771
PowerShell 6以降

function rank($a)
{
  $n = $a.length
  $r = [int[]]::new($n)
  if ($n) {0..($n - 1) | sort-object -stable {$a[$_]} |% {$i = 0} {$r[$_] = $i++}}
  $r
}

function PrintArray($a)
省16
798: 2025/08/12(火)21:05 ID:uRUBTkGF(2/2) AAS
-- 実行結果 --
入力: [1, 100, 10, 10000, 1000]
出力: [0, 2, 1, 4, 3]

入力: [3, 1, 4, 1, 5, 9, 2]
出力: [3, 0, 4, 1, 5, 6, 2]

入力: [0, 1, 0, 1, 0, 1, 0, 1]
出力: [0, 4, 1, 5, 2, 6, 3, 7]

入力:
出力:

入力: 1
省3
799
(20): 2025/08/16(土)01:44 ID:VU+jlz0U(1/2) AAS
【問題A】
1~9を1つずつ使用して表される9桁の数Anは全部で9!(=362880)個存在する。
整数n(1≦n≦362880)が与えられたとき、n番目に小さいAnを求めよ。

(例)
 1 → 123456789
 2 → 123456798
 3 → 123456879
 123456 → 416589732
 234567 → 684753219
 362880 → 987654321
省11
800
(1): 2025/08/16(土)13:16 ID:MUbLd8/3(1) AAS
AA省
801: 2025/08/16(土)19:14 ID:kN4EEg8M(1/3) AAS
>>799 の問題A
1からnまでの自然数を並べてできるi番目の順列を求める関数を前に作って持っていたので、
それを流用したらすぐできた(元の関数はBigIntとiの範囲外エラーにも対応)。

R
外部リンク:ideone.com
C++
外部リンク:ideone.com
802
(3): 2025/08/16(土)20:29 ID:kN4EEg8M(2/3) AAS
>>799 の問題B
R
外部リンク:ideone.com
C++
外部リンク:ideone.com
803
(1): 2025/08/16(土)21:32 ID:kN4EEg8M(3/3) AAS
>>799
>>802 のC++のithDuplicatedPermutation関数は引数が別の値(例えばn = 5, m = 3)のとき
正しく計算できなかったので修正。Rの方はintではなくdoubleで計算しているので問題ない。

外部リンク:ideone.com
804
(1): 2025/08/16(土)21:46 ID:VU+jlz0U(2/2) AAS
32bitだと階乗は12!が限界
805
(1): 2025/08/17(日)12:07 ID:R1ye1QDy(1/2) AAS
>>799 ruby
外部リンク:ideone.com

>>799 c
外部リンク:ideone.com
806
(2): 805 2025/08/17(日)15:08 ID:R1ye1QDy(2/2) AAS
>>799 ruby 若干の改善
外部リンク:ideone.com

>>799 c 若干の改善
外部リンク:ideone.com
807: 2025/08/17(日)15:21 ID:OrBxx4uG(1) AAS
ソートが消えて>>800と同じアルゴリズムになったね
808
(1): 2025/08/17(日)20:40 ID:bUKuWE64(1) AAS
>>804
確かにそうだった。15!も14!もintの範囲内に収まらない。>>803でn = 5に変えた場合に正しい
出力になるのはたまたまだった。

>>802をBigInt化するだけで問題なかった。
R
外部リンク:ideone.com
C++
外部リンク:ideone.com
809: 2025/08/19(火)21:08 ID:zFi0pntB(1) AAS
AA省
810: 2025/08/19(火)21:28 ID:ahVErwF8(1) AAS
>>771 scheme (chicken 4.13)
外部リンク:ideone.com
811
(1): 806 2025/08/21(木)22:19 ID:fAlkh9Aq(1) AAS
>>799 ruby
外部リンク:ideone.com
・問題A時に若干端折る
812
(5): 2025/08/21(木)23:15 ID:0KQ1xtxb(1) AAS
>>799 の逆変換プログラム
R
外部リンク:ideone.com
C++
外部リンク:ideone.com

問題A, 問題Bとは違って、順列に出現するユニークな整数は1〜nの連番でなくても良いし、
出現回数はすべて同じでなくても良い。例えば、入力は [3, 1, 4, 1, 5, 9] でも良い
(ユニークな整数は1, 3, 4, 5, 9で、出現回数は1が2回、その他が1回)。
813: 2025/08/22(金)01:14 ID:6LYRfbyj(1) AAS
>>799
Java
外部リンク:paiza.io
814
(1): 2025/08/22(金)06:55 ID:qlaiAqZd(1/2) AAS
>>812
Rust >>799の逆変換の重複順列の何番目か算出

use itertools::Itertools;
use num::{BigUint, One};

// 重複順列の何番目かを求める ex. "222331434114" → "123456"番目
fn to_nth(input: &str) -> String {
// 出現数
let (mut counts, chars): (Vec<usize Vec<char>) = input.chars().sorted().dedup_with_count().multiunzip();
// index化input
let input: Vec<usize> = input.chars().map(|c| chars.iter().position(|&c0| c0 == c).unwrap()).collect();
省16
815: 2025/08/22(金)06:56 ID:qlaiAqZd(2/2) AAS
>>814の検証分

fn main() {
assert_eq!(to_nth("123456789"), "1");
assert_eq!(to_nth("123456798"), "2");
assert_eq!(to_nth("123456879"), "3");
assert_eq!(to_nth("416589732"), "123456");
assert_eq!(to_nth("684753219"), "234567");
assert_eq!(to_nth("987654321"), "362880");

assert_eq!(to_nth("111222333444"), "1");
assert_eq!(to_nth("111222334344"), "2");
省13
816
(1): 811 2025/08/22(金)20:26 ID:m9vhyo0Z(1) AAS
>>799 ruby
外部リンク:ideone.com
・問題A時に全体的な規則性に着目
・部分的に着目しちゃったのが>>811
・何も工夫を入れなかったのが>>806
817
(1): 816 2025/08/23(土)20:27 ID:uyhDG+iz(1/2) AAS
>>799 ruby 問題Bもケア
外部リンク:ideone.com
818: 2025/08/23(土)21:01 ID:gxRFdG35(1) AAS
>>799
java
外部リンク:ideone.com
819
(1): 817 2025/08/23(土)23:26 ID:uyhDG+iz(2/2) AAS
>>799 java
外部リンク:ideone.com
820
(1): 2025/08/24(日)21:13 ID:ubCw2JoQ(1) AAS
>>812の逆変換プログラムは>>808の順変換プログラムを流用したから処理に無駄があった。
逆変換用に一から書き直したらすっきりした。

R
外部リンク:ideone.com
C++
外部リンク:ideone.com
821
(1): 819 2025/08/25(月)00:28 ID:IbSJkZLt(1) AAS
>>799 java Iterable<int[]>
外部リンク:ideone.com
822: 2025/08/27(水)00:40 ID:AbNZa8yo(1/2) AAS
>>799 ocaml
外部リンク:ideone.com

>>799 scheme (chicken 4.13)
外部リンク:ideone.com
823: 2025/08/27(水)21:02 ID:AbNZa8yo(2/2) AAS
>>799 octave
外部リンク:ideone.com
824: 2025/08/27(水)21:46 ID:B7vE54ji(1) AAS
>>820の逆変換プログラムのC#版
外部リンク:ideone.com

LINQのTakeWhileメソッドとSumメソッドを組み合わせたらすっきり書けた。
825: 821 2025/08/28(木)21:01 ID:mnaa+hsk(1) AAS
>>799 java
外部リンク:ideone.com
・next()ごとに複製しない版。する版は >>821
・hasNext()側で次を準備。next()側なのは >>821
826: 2025/08/29(金)13:52 ID:xrZF+zBK(1) AAS
>>799
外部リンク:ideone.com
C++
827: 2025/08/29(金)20:09 ID:VEuLqGzD(1) AAS
>>812 ruby 2.5.5
外部リンク:ideone.com
・tallyあるのは2.7以降

>>812 octave
外部リンク:ideone.com
828: 2025/08/29(金)22:34 ID:uVFRnDIW(1/2) AAS
AA省
829: 2025/08/29(金)22:35 ID:uVFRnDIW(2/2) AAS
-- 実行結果 --

【問題A】
1 → 123456789
2 → 123456798
3 → 123456879
123456 → 416589732
234567 → 684753219
362880 → 987654321

【問題B】
1 → 111222333444
省5
830
(1): 2025/08/30(土)17:37 ID:zI+bKiSo(1) AAS
>>812 ocaml
外部リンク:ideone.com

>>812 scheme (chicken 4.13)
外部リンク:ideone.com
831: 830 2025/09/02(火)21:36 ID:MM5Gazf9(1) AAS
>>812 scheme (chicken 4.13)
外部リンク:ideone.com
・集計部分をalistに変えてみただけ
832
(1): 2025/09/06(土)23:05 ID:Z/aFZPi6(1) AAS
>>561 scheme (chicken 4.13)
外部リンク:ideone.com
833
(1): 832 2025/09/07(日)12:29 ID:O1zDlKW9(1/2) AAS
>>561 scheme (chicken 4.13)
外部リンク:ideone.com
・m1m2を不必要にリストにしてたのを廃止
834: 833 2025/09/07(日)14:22 ID:O1zDlKW9(2/2) AAS
>>561 scheme (chicken 4.13)
外部リンク:ideone.com
・letを自然な位置に移動
835
(1): 2025/09/08(月)23:02 ID:4SI/cFAg(1/2) AAS
>>485 scheme (chicken 4.13)
外部リンク:ideone.com

>>500 scheme (chicken 4.13)
外部リンク:ideone.com
836
(1): 835 2025/09/08(月)23:33 ID:4SI/cFAg(2/2) AAS
>>485 scheme (chicken 4.13)
外部リンク:ideone.com
・(product . lists)
・(product xs . rest) が >>835
837: 2025/09/09(火)21:56 ID:PCxKX9bv(1) AAS
>>438 scheme (chicken 4.13)
外部リンク:ideone.com
・まずまとまりに分割して処理

>>438 scheme (chicken 4.13)
外部リンク:ideone.com
・最初のを四つにして、残りはスキップ
838: 2025/09/10(水)21:21 ID:rb/tQvOM(1) AAS
>>438
C#で短く書けた
外部リンク:ideone.com

x.EndsWith(" ") でなく x.LastOrDefault() == ' ' の方が長くはなるが効率的かも知れない。
839
(1): 836 2025/09/10(水)22:49 ID:NV1RL9MH(1) AAS
>>485 scheme (chicken 4.13)
外部リンク:ideone.com
・デカルト積の解釈を(勝手に)変更
840
(1): 839 2025/09/10(水)23:35 ID:6JfM8ZLf(1) AAS
>>485 scheme (chicken 4.13)
外部リンク:ideone.com
・(cons y x)して最後にreverseする
・(list x y)して最後にflattenするのが >>839
841: 840 2025/09/11(木)23:05 ID:WPUXbxYH(1) AAS
>>485 scheme (chicken 4.13)
外部リンク:ideone.com
・reverse回数減らした版
842
(1): 2025/09/12(金)15:41 ID:IRXhEt4s(1) AAS
お題
1行1単語のリストが、しりとりとして成立しているか判定するコードを書きなさい
成立していたら◯、不成立なら☓をしゅつりょくすること

【入力】
りんご
ごりら
らっぱ
843: 2025/09/12(金)16:19 ID:uazXAFOm(1) AAS
入力例に対する出力例が存在しなくて曖昧
それを補わないと問題が不成立
844: 2025/09/12(金)20:36 ID:I2wrB793(1) AAS
>>438 scheme (chicken 4.13)
外部リンク:ideone.com
・空白時にdrop-while

>>842 ruby
外部リンク:ideone.com
845
(15): 2025/09/13(土)12:21 ID:nVmVuqdT(1) AAS
退屈そうだからちょっと難易度高め

【問題】
各桁の数が1~5のいずれかで全ての桁の合計がMとなる正整数の集合をG[M]で表す。
例えば123、111111はG[6]の要素、255、222222はG[12]の要素となる。
整数M(1≦M≦32)、N(1≦N)が与えられたとき、N番目に小さいG[M]の要素を求めよ。
ただしNがG[M]の要素数より大きい場合の出力は0とする。
求める数値は文字列または各桁の数の配列による表現も可能とする(123⇔"123"⇔[1,2,3])。

【例】 #入力は(M,N)
(2,1) → 2
(2,2) → 11
省19
846
(1): 2025/09/13(土)21:09 ID:rhMflYHg(1) AAS
>>845
R
外部リンク:ideone.com

ヒントはどう使うのかわからなかった。
847: 2025/09/14(日)02:07 ID:K9dbpWus(1) AAS
>>845 c++
外部リンク:ideone.com
先越された
848
(1): 2025/09/14(日)02:17 ID:ymjVQadn(1) AAS
>>845 ruby
外部リンク:ideone.com
・なんとなく動いてる版
・チマチマと次を探して行く
・G[20]まで出すのがやっと(4.05s)
849
(2): 2025/09/14(日)21:00 ID:Yva1i9w5(1/2) AAS
>>845
R
外部リンク:ideone.com

>>846より行列計算が速くなった。変数名mとnが逆だったのを直した。

C++に移植
外部リンク:ideone.com
850
(1): 2025/09/14(日)22:50 ID:Yva1i9w5(2/2) AAS
>>845
Fortranに移植
外部リンク:ideone.com

行列計算を短く書けて、しかも実行が速い。
851
(2): 848 2025/09/15(月)00:34 ID:aTaxsjKO(1/2) AAS
>>845 ruby
外部リンク:ideone.com
・キャッシュ探りながら構築
・c[桁の合計][幅] = とりうるパターン
852
(1): 851 2025/09/15(月)00:58 ID:aTaxsjKO(2/2) AAS
外部リンク:ideone.com
・動きは >>851 といっしょ
・若干の整理
853: 2025/09/15(月)22:27 ID:g8zilsSB(1) AAS
>>850では行末に無駄な半角空白文字が出力される。消すには最後から3行目のnthPartition(m, n)を
trim( )で囲めば良い。
854
(1): 852 2025/09/16(火)01:02 ID:3CKXdG+H(1) AAS
>>845 ruby
外部リンク:ideone.com
・動きは >>851 といっしょ
・数値の内部表現を配列から整数へ変更
855
(1): 854 2025/09/17(水)22:30 ID:U8XLHdaR(1) AAS
>>845 ruby 2.5.5
外部リンク:ideone.com
・とりうるパターン数に着目し迫る
・tallyは2.7以降
856
(1): 2025/09/17(水)22:43 ID:RlLGu0ST(1/2) AAS
>>845
C++
外部リンク:ideone.com

行列Aの計算で加減算・代入回数を>>849より減らした。実行時間の違いは分からなかった。
857: 2025/09/17(水)23:39 ID:RlLGu0ST(2/2) AAS
>>856
BigInt化してm = 2000, n = 2¹⁰²⁴で実行したら違いが明確になった。

(1) >>849のBigInt版
外部リンク:ideone.com
(2) >>856のBigInt版
外部リンク:ideone.com

加減算・代入回数を削減した(2)の方が確かに速く、(1)の約4分の3の実行時間。
858
(1): 855 2025/09/18(木)21:13 ID:mk4sIpUK(1) AAS
>>845 ruby 2.5.5
外部リンク:ideone.com
・揃ってからcumsum、のリズムを廃止
859
(1): 858 2025/09/19(金)21:59 ID:e72KvXSi(1) AAS
>>845 ruby 2.5.5
外部リンク:ideone.com
・若干の整理(loop廃止、fill三回へ置き換え)
860
(1): 859 2025/09/20(土)21:39 ID:zrmIrXrK(1) AAS
>>845 ruby 2.5.5
外部リンク:ideone.com
・内部表現の変更
 112225→[2,3,0,0,1]
861
(1): 860 2025/09/22(月)21:37 ID:9W7EeSnZ(1) AAS
>>845 ruby 2.5.5
外部リンク:ideone.com
・内部表現のさらなる変更
・パターン数を直接キャッシュするようにした
 cc[合計][幅] = とりうるパターン数

>>845 ruby
外部リンク:ideone.com
・m = 2000, n = 1 << 1024
862
(1): 861 2025/09/23(火)01:13 ID:XS9iE/WB(1) AAS
>>845 c++
外部リンク:ideone.com
・ruby版861の移植
・m = 2000, n = 1 << 1024
863: 862 2025/09/26(金)21:58 ID:rAOVnJgT(1) AAS
>>845 ruby
外部リンク:ideone.com
・実りの無い再帰を省略
・結果を配列で集めず整数で集める

>>845 c++
外部リンク:ideone.com
・rubyの移植版

>>845 ocaml
外部リンク:ideone.com
・rubyの移植版
省2
864
(2): 2025/10/19(日)18:23 ID:UPYRyJKx(1) AAS
お題
硬貨の種類と金額が与えられます。
硬化の合計がちょうど金額と同じになるように硬貨を選ぶとき、使用枚数の最小値を求めてください。
支払いが不可能なときは-1を出力します。
各硬貨は無制限に使用できます。
額面の大きい硬貨を優先して選ぶ貪欲法が常に最適解を与えるとは限らないことに注意。

入力
硬貨:[1,7,10]
金額:14

出力
省1
865: 2025/10/19(日)21:36 ID:1trCfbwI(1) AAS
>>864
R
外部リンク:ideone.com
866: 2025/10/22(水)21:34 ID:vm0Iby1T(1) AAS
>>864
金額が大きい場合でも高速に求められるようにした。

R
外部リンク:ideone.com
C++
外部リンク:ideone.com
867
(2): 2025/10/26(日)09:31 ID:Y3+SSpql(1/5) AAS
AA省
868
(1): 2025/10/26(日)09:50 ID:Y3+SSpql(2/5) AAS
あ、ただの素数判定でも良いです。
ちなみに、66..61の場合は6661までは素数ですが66661は素数じゃなくなりました。
なので、33..31もどこかで素数じゃなくなるのか?それともずっと素数になりそうなのか?って疑問が持ち上がりました。
869
(2): 2025/10/26(日)10:13 ID:XLS0tlS8(1/2) AAS
>>867
興を削いですまんが、「33...331は素数か」でググったら、AIが(あまり大きくない桁数で)答えを示してくれた…
870
(1): 2025/10/26(日)10:19 ID:0X7G2IAI(1) AAS
near-repdigit素数とかで研究されてるらしい

結果だけ知りたいなら↓がまとめてる
外部リンク[htm]:stdkmd.net
871
(1): 869 2025/10/26(日)10:21 ID:XLS0tlS8(2/2) AAS
>>869
ちなみに、以下の思考経路だったのでプログラミング的な思考がゼロだった訳では無い。
1.多倍長整数で組むべきかな?
2.でも64bit整数の範囲で合成数だったら馬鹿馬鹿しいな
3.組む前にカンニングしちゃえ
4.>>869
872: 2025/10/26(日)17:08 ID:Y3+SSpql(3/5) AAS
>>869-871
いえいえ、ああ、やっぱりずっと素数という訳にはいかないんですね…。
何か素数の秘密に触れるヒントか?と心躍ったけど、そんな訳なかったですね(´・ω・`)

あやうく数学スレで鼻息荒く書き込むところでした。

ありがとうございました<(_ _)>
873
(1): 2025/10/26(日)17:55 ID:N6SeZsiy(1) AAS
29bitで収まる範囲内
333333331 = 17 × 19607843
これを求められなかったHaskellはすごく遅い?
874: 2025/10/26(日)23:06 ID:Y3+SSpql(4/5) AAS
>>873
速いアルゴリズムに変えたら何とか1分ほどでその数字まで届きました。
(そもそも、>867 のは美しいとか短いとかの枕詞が付くコードですし。33...31に気付かなかったら4桁ぐらいが実用的ならおkだったので)

改良版Haskell
pfactorization = f primes
 where primes =2:3:5#primes
     where n#x@(m:q:y)=[n|gcd m n<2]++(n+2)#last(x:[m*q:y|q^2-3<n])

というか、それより1桁少ない方が少し時間かかりますね。
19607843 < 33333331 なので、素数比較回数が多いのかと。
875: 2025/10/26(日)23:07 ID:Y3+SSpql(5/5) AAS
あ、f の方を忘れた。
f のコードは変更なしです。
876: 2025/11/07(金)05:48 ID:ckPLmv2U(1) AAS
>>868
cだとこんな感じでいいのかな?
3333333333333331くらいまで一瞬でできる

#include <stdio.h>

int main(void) {
long long d, n;

printf("Enter a number: ");
scanf("%lld", &n);

for (d = 2; d * d <= n; d++) {
if (n % d == 0)
省8
877: 2025/11/25(火)16:00 ID:COUmbZtB(1) AAS
お題:ulp()の実装
Pythonのmath.ulp()に相当する関数の実装
特殊値(非数や無限大や非正規化数)の考慮は任意
引数がゼロの場合はDBL_MINやDBL_TRUE_MINに相当する値を
返すこと(プラットホーム依存)

発展的なお題:
共用体やfrexp()やldexp()を使わずに実装
878
(2): 2025/12/06(土)16:35 ID:LjhUSqqq(1) AAS
お題:ページャーがある。範囲表示に使う配列を出力せよ。現在のページ番号はp,総ページ数はn、切り取る範囲はrとする。


p=1, n=10, r=5
[1,2,3,4,5]

p=3, n=10, r=5
[1,2,3,4,5]

p=5, n=10, r=5
[3,4,5,6,7]

p=8, n=10, r=5
[6,7,8,9,10]
省2
879: 2025/12/06(土)19:35 ID:cqDpuJik(1) AAS
>>878
R
外部リンク:ideone.com

お題に指定がない仕様は適当に決めた。
880: 2025/12/30(火)21:09 ID:NmUg6+Gs(1) AAS
>>878
Java
外部リンク:paiza.io
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.922s*