24h購物| | PChome| 登入
2009-08-20 22:24:24| 人氣1,969| 回應2 | 上一篇 | 下一篇

ACM 147 Q147: Dollars

推薦 0 收藏 0 轉貼0 訂閱站台

作法 : DP(零錢問題)

請善用scanf("%d.%d",&n,&m); 來讀取浮點數

/*******************************************************/

#include<stdio.h>
#include<stdlib.h>
long long int dollars[30001]={0};
main()
{
 int a,b,money[11]={10000,5000,2000,1000,500,200,100,50,20,10,5};
 dollars[0]=1;
 for(a=0;a<11;a++)
    for(b=money[a];b<=30000;b++)
       dollars[b]+=dollars[b-money[a]];
 int n,m;
 while(scanf("%d.%d",&n,&m)==2)
   {
     if(n==0&&m==0) break;
   printf("%3d.%02d%17I64d\n",n,m,dollars[n*100+m]);
   }
 return 0;
}

台長: 來源不明
人氣(1,969) | 回應(2)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 10285 Q10285: Longest Run on a Snowboard
此分類上一篇:ACM 524 Q524: Prime Ring Problem

B88000005
C++裡面不能用%17I64d這個東西勒= =怎麼辦??
2009-08-27 22:01:51
Pichu
long long int dollars[3000"1"];
超出索引 小心阿~
2009-11-24 17:10:00
版主回應
感謝,已經修正
2009-11-24 18:31:14
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文