问题及代码:
/*
*copyright (c) 2014,烟台大学计算机学院
*all rights reserved.
*文 件 名 : 换分币问题.cpp
*作 者 :张 鹏
*完成日期 :2014年10月27号
*版 本 号 :v1.0
*
*问题描述 :用一元人民币兑换成一分,两分和五分硬币,有多少不同的兑换方法?
*输入描述 :无
*程序输出 :输出一系列数,为不同的换分币的方案。
*/
#include <iostream> //预处理指令。
using namespace std; //使用C++的命名空间 std。
int main() //函数首部。
{
int iO_cent,iD_cent,iNickel,iPlay=-245; //声明四个变量iO_cent,iD_cent,iNickel,iPlay为整型。四个变量分别代表一分硬币,两分硬币,五分硬币和方案数。
cout<<"一元人民币兑换成一分,两分和五分硬币的方案如下:"<<endl; //输出汉字,使得界面更友好。
for(iO_cent=0; iO_cent<=100; iO_cent++) //for语句执行,穷举一分硬币兑换数。
{
for(iD_cent=0; iD_cent<=50; iD_cent++) //for语句执行,穷举两分硬币兑换数。
for(iNickel=0; iNickel<=20; iNickel++) //for语句执行,穷举五分硬币兑换数。
if(iO_cent+2*iD_cent+5*iNickel==100) //判断是否刚好够换一元钱。
{
iPlay++;
cout<<"方案"<<iPlay<<" : 一分硬币共"<<iO_cent<<"枚 "<<"两分硬币共"<<iD_cent<<"枚 "<<"五分硬币共"<<iNickel<<"枚"<<endl; //输出结果
}
}
return 0; //执行return语句并结束程序。
}
运行结果:
知识点总结:
和上一篇的原理十分相似,加以借鉴和修改就可做出。
学习心得:
不知道为什么当我把方案数最初赋值为一的时候会出现这样的情况:
方案数直接从247开始算,所以我只好把初值定为-245才正常。