トップページに戻る
次のJavaScriptのサンプルへ
前のJavaScriptのサンプルへ
Q33 ホワイトデーのお返し
JavaScriptのソース
Solve( 5, 10);
Solve(543210,987654);
function Solve(pM,pN)
{
var Answer = 0;
for(var I = 0 ; I * 3 <= pN ; I++){
var RestM = pM - I;
var RestN = pN - I * 3;
if(HasAnswer(RestM,RestN)){
Answer++;
}
}
console.log('Answer=' + Answer);
}
// 連立方程式の解の有無を調べる
// X+ Y = RestM
// 2X+ Y = RestN
function HasAnswer(pRestM , pRestN)
{
// 加減法でXを求める
var X = pRestN - pRestM;
// Yの範囲をチェック
return (0 <= X && X <= pRestM);
}
実行結果
Answer=3
Answer=222223
解説
ループをネストさせるのではなく、
連立方程式を解くようにして、速度を上げてます。