カメヲラボ

主にプログラミングとお勉強全般について書いてます

Quick Change

http://acm.pku.edu.cn/JudgeOnline/problem?id=3085
硬貨の数が最も少なくなるように両替。硬貨は4種類で

硬貨 価値(cent)
quarter 25
dime 10
nickel 5
penny 1

のようになっています。入力は整数値(1〜500)で与えられるので、上記の硬貨の総数が最小になるように両替して、それぞれの枚数を答えてください。
価値の大きい硬貨から両替するだけ。普通に書くと136Bが最短かと。

main(i,c){
  for(;~scanf("%d",&c);)
    --i&&printf("%d %d QUARTER(S), %d DIME(S), %d NICKEL(S), %d PENNY(S)\n",
      -i,c/25,c%25/10,c%25%10/5,c%5);
}

そしてインチキ。

main(i){
  for(;i<501;)
    printf("%d %d QUARTER(S), %d DIME(S), %d NICKEL(S), %d PENNY(S)\n",
      i++,i/25,i%25/10,i%25%10/5,i%5);
}

入力無視^^;