challenge 急勾配の判定

有限の長さの数列で,各要素の値が,その要素の後ろにある残りの列に含まれるすべての要素の和よりも大きい列を「急勾配の列」ということにします(空列の和は0とします).

任意の長さ(ただし有限の長さの)数列を与えられたとき,それが「急勾配の列」であるかどうかを判定する述語関数を定義してください.

必須ではありませんが,効率についてコメントがあれば面白いかもしれませんね.

Posted feedbacks - PowerShell

Perlの方々の回答を参考にしました

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
function is_super_dec( [array] $super_array )
{
    $total = 0    
    foreach( $x in reverse $super_array )
    {        
        if( $x -le $total ){ return 0 }
        $total += $x
    }
    return 1
}

is_super_dec @( 512,256,128,64,32,16,8,4,2,1 )

Index

Feed

Other

Link

Pathtraq

loading...