问题来源
问题描述
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
输入
每行只有一个正整数N,N小于32768。
输出
对应每个输入,输出兑换方法数。
例子
AC的代码
#include <iostream>
using namespace std;
int main()
{
int i,sum=0,f2;
while (cin >> i)
{
f2 = i / 2;
sum = sum + f2 + 1;
for (int g = 0; g <= f2; g++)
{
sum = sum + (i - 2 * g) / 3;
}
cout << sum<<endl;
sum = 0;
}
}
问题思路
f2为用2分兑换的最大数,sum加上只用二分和一分换的种数,即为f2和只用1分换的种数,即为1。用for循环算出用3分和2分和一份的种数。加到sum得到总种数。