Codeup-问题 C: 货币系统
生活随笔
收集整理的這篇文章主要介紹了
Codeup-问题 C: 货币系统
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
母牛們不但創(chuàng)建了他們自己的政府而且選擇了建立了自己的貨幣系統(tǒng)。
[In their own rebellious way],,他們對(duì)貨幣的數(shù)值感到好奇。
傳統(tǒng)地,一個(gè)貨幣系統(tǒng)是由1,5,10,20 或 25,50, 和 100的單位面值組成的。
母牛想知道有多少種不同的方法來用貨幣系統(tǒng)中的貨幣來構(gòu)造一個(gè)確定的數(shù)值。
舉例來說, 使用一個(gè)貨幣系統(tǒng) {1,2,5,10,...}產(chǎn)生 18單位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。
寫一個(gè)程序來計(jì)算有多少種方法用給定的貨幣系統(tǒng)來構(gòu)造一定數(shù)量的面值。
保證總數(shù)將會(huì)適合long long (C/C++) 和 Int64 (Free Pascal)。
輸入
輸入包含多組測(cè)試數(shù)據(jù)
?
貨幣系統(tǒng)中貨幣的種類數(shù)目是 V 。 (1<= V<=25)
要構(gòu)造的數(shù)量錢是 N 。 (1<= N<=10,000)
| 第 1 行: | ?二整數(shù), V 和 N |
| 第 2 ..V+1行: | 可用的貨幣 V 個(gè)整數(shù) (每行一個(gè) 每行沒有其它的數(shù))。 |
?
輸出
單獨(dú)的一行包含那個(gè)可能的構(gòu)造的方案數(shù)。
樣例輸入
3 10 1 2 5樣例輸出
10 #include <iostream> #include <algorithm> using namespace std;typedef long long ll; const int maxn = 10000+10; int V, N; //貨幣種類數(shù),數(shù)量錢 int vv[maxn]; ll dp[maxn];int main() {while(~scanf("%d%d", &V, &N)){for(int i = 0; i < V; i++){scanf("%d", &vv[i]);}sort(vv, vv+V);for(int i = 0; i <= N; i++){dp[i] = 0;}dp[0] = 1;for(int i = 0; i < V; i++){for(int v = vv[i]; v <= N; v++){dp[v]=dp[v]+dp[v-vv[i]];}}printf("%lld\n", dp[N]);}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的Codeup-问题 C: 货币系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeup-问题 B: 采药
- 下一篇: 操作系统(1) -- 计算机系统概述