1293:买书
时间限制: 1000 ms 内存限制: 65536 KB
提交数:13926 通过数: 9201
【题目描述】
小明手里有n𝑛元钱全部用来买书,书的价格为1010元,2020元,5050元,100100元。
问小明有多少种买书方案?(每种书可购买多本)
【输入】
一个整数 n𝑛,代表总共钱数。(0≤n≤10000≤𝑛≤1000)
【输出】
一个整数,代表选择方案种数。
【输入样例】
20
【输出样例】
2
【提示】
样例输入
样例输入2:
15
样例输入3:
0
样例输出
样例输出2:
0
样例输出3:
0
这道题不是很难,公式经过推理就可以得到;
这里书一共有10 20 50 100元4种书,题目中要求全部把钱花了,那么就可以连n一起特判;
if(n==0||gewei!=0){
cout<<0;
return 0;
}
这里要return 0;退出程序,不要问我怎么知道的;
还要把丢到c里面去;
还有一个初始化别忘了;
接下来循环套公式
输出f[n];
题解如下:
#include<bits/stdc++.h>
using namespace std;
int n,gewei;
long long c[10000],f[10000];
int main() {
cin>>n;
gewei=n%10;
c[1]=10,c[2]=20,c[3]=50,c[4]=100;
f[0]=1;
if(n==0||gewei!=0){
cout<<0;
return 0;
}
for(int i=1;i<=4;i++)
{
for(int j=c[i];j<=n;j++)
{
f[j]+=f[j-c[i]];
}
}
cout<<f[n];
return 0;
}