问题及代码:
<pre class="cpp" name="code">/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:王艺霖
*完成日期:2016年3月13日
*版 本 号:v1.0
*
*问题描述:用一元人民币兑换成1分、2分、5分硬币,有多少种不同的兑换方法?请输出所有可能的方案。
*提示:根据题意设i,j,k分别为兑换的1分、2分、5分硬币的枚数,则,j,k的值应满足:i+j*2+k*5=100,根据取值范围构造循环解题即可。
*
*输入描述:无输入
*输出描述:输出1分、2分、5分硬币的枚数所有情况。
*/
#include<iostream>
using namespace std;
int main()
{
int i,j,k;
for(k=20;k>=0;k--)
{
for(i=0,j=0;i<=100,j<=50;i++,j++)
{
if(5*k+i+2*j==100)
cout<<"1分硬币枚数:"<<i<<" "<<"2分硬币枚数:"<<j<<" "<<"5分硬币枚数:"<<k<<endl;
}
}
for(i=100;i>=0;i--)
{
for(k=0,j=0;k<=20,j<=50;k++,j++)
{
if(5*k+i+2*j==100)
cout<<"1分硬币枚数:"<<i<<" "<<"2分硬币枚数:"<<j<<" "<<"5分硬币枚数:"<<k<<endl;
}
}
for(j=50;j>=0;j--)
{
for(i=0,k=0;i<=100,k<=20;i++,k++)
{
if(5*k+i+2*j==100)
cout<<"1分硬币枚数:"<<i<<" "<<"2分硬币枚数:"<<j<<" "<<"5分硬币枚数:"<<k<<endl;
}
}
return 0;
}
运行结果:
知识点总结:
穷举法,构造循环结构
学习心得:
利用循环一切都变简单!