1.2.2節 両替の計算
慣れないSchemeと違ってスゲー楽~w
まあ本チャンは1.3節からだが
問題1.9、1.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 件のコメント :
コメントを投稿