【题目描述】
小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。
问小明有多少种买书方案?(每种书可购买多本)
【输入】
一个整数 n,代表总共钱数。(0≤n≤1000)
【输出】
一个整数,代表选择方案种数。
【输入样例】
15
【输出样例】
2
【输入样例2】
15
【输出样例2】
0
【输入样例3】
0
【输出样例3】
0
思路:设num[j]表示选择方案种数,如果num[j-price[i]] != 0,则num[j] = num[j] + num[j-price[i]]。
以下是代码(暂时用的超简形式):
#include<cstdio>
int money,price[4]={10,20,50,100},num[1005]={1};
int main(){scanf("%d",&money);for(int i=0;i<4;i++)for(int j=price[i];j<=money;j++)num[j]+=num[j-price[i]];printf("%d",num[money]);
}
刷题网站:信息学奥赛一本通(C++版)在线评测系统
题目位置: http://ybt.ssoier.cn:8088/problem_show.php?pid=1293