解題心得
題目寫得很亂,就沒有仔細看了。
基本上就是零錢問題,記得字串切割跟最後答案要-1就好。
程式碼
#include <iostream> #include <string> #include <sstream> using namespace std; int prices[10] = { 1,5,10,20,50,100,200,500,1000,2000 }; long long int ans[50001] = { 1 }; int main() { for (int i = 0; i < 10; i++) { for (int j = prices[i]; j < 50001; j++) ans[j] += ans[j - prices[i]]; } string s; while (getline(cin, s)) { int n = 0, temp; stringstream ss(s); while (ss >> temp) n += temp; if (n == 0) break; cout << ans[n] - 1 << endl; } return 0; }
沒有留言:
張貼留言