解題心得
這題也是硬幣問題(或者說解不等式問題?),硬幣數是奇數。
記得開long long。
程式碼
#include <iostream> using namespace std; int prices[376]; long long int ans[751] = { 1,0 }; int main() { for (int i = 0; i < 376; i++) prices[i] = i * 2 - 1; for (int i = 1; i <= 375; i++) { for (int j = prices[i]; j < 751; j++) ans[j] += ans[j - prices[i]]; } int m, n; while (cin >> m) { while (m--) { cin >> n; cout << ans[n] << endl; } cout << endl; } return 0; }
沒有留言:
張貼留言