青少年编程知识记录 codecoming

【题解】人民币问题

【题目描述】

给出任意的人民币(>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({});

标签: for模拟

作者:亿万年的星光 分类:题解目录 浏览: