解題心得
這題也是硬幣問題(或者說解不等式問題?),硬幣數是奇數。
記得開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;
}
沒有留言:
張貼留言