当前位置: 代码迷 >> 综合 >> 信息学奥赛一本通——1293:买书C++
  详细解决方案

信息学奥赛一本通——1293:买书C++

热度:88   发布时间:2023-12-08 12:48:11.0

【题目描述】

小明手里有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