私はプロジェクト・ユーラー31 を解決しようとしました:
イングランドでは、通貨はポンド、ポンド、ペンス、p、
一般的な循環には8つのコインがあります:
1p、2p、5p、10p、20p、50p、1p(100p)、および2p(200p)である。可能です
£2を次のようにしてください:
1×1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1pここで、
£2の方法はいくつありますか
任意の数のコインを使って作ったのですか?
このコードで:
#define to2(x) ((x)/2+1)
int to5(x)
{
int acc=1;
for(;x>0;x-=5)
acc+=to2(x);
return acc;
}
int to10(x)
{
int acc=1;
for(;x>0;x-=10)
acc+=to5(x);
return acc;
}
int to20(x)
{
int acc=1;
for(;x>0;x-=20)
acc+=to10(x);
return acc;
}
int to50(x)
{
int acc=1;
for(;x>0;x-=50)
acc+=to20(x);
return acc;
}
int to100(x)
{
int acc=1;
for(;x>0;x-=100)
acc+=to50(x);
return acc;
}
int main()
{
int test = to100(200)+1;
printf("%d",test);
return 0;
}
しかしコードは73685ではなく73685を与えますが、私はなぜ誰かが私を助けてくれるのか分かりませんplz?