【题解】人民币问题
【题目描述】
给出任意的人民币(>10 元)的整币兑换成 5 元、2 元和 1 元币值(要求三种币值均有)的方法有多少种。
【输入描述】
输入任意的人民币(>10 元)的整币 100,50,20,10
【输出描述】
计算出兑换成 5 元、2 元和 1 元币值(要求三种币值均有)的方法有多少种
【样例输入】
50
【样例输出】
106
【数据范围】
【题目分析】
首先注意一点,题目要求三种币值都必须有,当人民币是10是,方案只有(5+2*2+1)和(5+2+1*3)两种。
想的简单一点就是模拟(for循环)
[参考答案]
#include<iostream> using namespace std; int money,sum; //钱数和总数 int main(){ cin>>money; for(int i=1;i<money/5;i++) //模拟5元 { for(int j=1;j<money/2;j++) //模拟2元 { for(int k=1;k<money/1; k++) //模拟1元 if(i*5+j*2+k*1==money) //符合情况 sum++; } } cout<<sum<<endl; return 0; }
【注】:和“画百钱买白鸡”问题是同一种类型。
(adsbygoogle = window.adsbygoogle || []).push({});