Hdu 1283 钱币兑换问题
生活随笔
收集整理的這篇文章主要介紹了
Hdu 1283 钱币兑换问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思路:首先看能兌換多少個三分硬幣的,然后當三分硬幣分別為1,2,3,.... n時有多少個2分硬幣的,為什么要這樣確定了?因為只要還可以兌換出三分硬幣和二分硬幣的那么剩下的價值一定可以讓價值為1的硬幣塞滿。開頭為什么s為N/3+1呢?因為可以這樣想,假設N=7,那么只包含3分硬幣和1分硬幣的組合方式為:3,3,1; 3,1,1,1,1;所以N/3是實際上可以容納三分硬幣的個數。而增加1是因為可以全部換成1分的硬幣。有人會疑問,那么t = (N-3*i)/2不是會重復嗎?這是不可能的,因為硬幣的價值是遞增的,只有當i的值為N/3時,t的值可以為0或者1。所以不會重復。
CODE:
#include?<stdio.h>#include?<stdlib.h>
#include?<string.h>
using?namespace?std;
int?N;
int?main()
{
????while(~scanf("%d",?&N))
????{
????????int?s?=?N/3+1;
????????for(int?i?=?0?;?i?<=?N/3?;?i++)
????????{
????????????int?t?=?(N-3*i)/2;
????????????s?+=?t;
????????}
????????printf("%d\n",?s);
????}
}?
轉載于:https://www.cnblogs.com/g0feng/archive/2012/07/18/2597069.html
總結
以上是生活随笔為你收集整理的Hdu 1283 钱币兑换问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: The Art of Unix Prog
- 下一篇: 用python数据分析excel多地天气