2012-07-17

SCIP in C++11 ― 1.2節その1


1.2.2節 両替の計算

慣れないSchemeと違ってスゲー楽~w
まあ本チャンは1.3節からだが

問題1.91.10はプロセスの読み方なのでパス

これでできちゃうんだ・・・魔法使いになったみたいw
----
int main(int argc, char** argv)
{
    cout<<"# of exchanges for 1$="<<countChange(100)<<endl;

    return(0);
}

const int countChange(const int amount)
{
    return(cc(amount,5));
}
const int cc(const int amount, const int kindsOfCoins)
{
    if(0==amount){
        return(1);
    }else if(0>amount||0==kindsOfCoins){
        return(0);
    }else{
        return(cc(amount,kindsOfCoins-1)
               +cc(amount-firstDenomination(kindsOfCoins),kindsOfCoins));
    }
}
const int firstDenomination(const int kindsOfCoins)
{
    if(1==kindsOfCoins){return(1);}
    else if (2==kindsOfCoins){return(5);}
    else if (3==kindsOfCoins){return(10);}
    else if (4==kindsOfCoins){return(25);}
    else if (5==kindsOfCoins){return(50);}
    return(0);
}
----
出力
----
# of exchanges for 1$=292

0 件のコメント :

コメントを投稿