以前上课时,老师讲软件测试的时候说了下这个。现在贴过来,欢迎拍砖。
/* 找零最佳组合
SandyFeng
2012.5.32 */
#include "iostream.h"
void Dispose(float m_Money);
void main() { float m; //需要找零RMB float m_R; //顾客购买货物价格 float m_P; //顾客付款的RMB
//确定处理数据
cout<
cin>>m_R;
cout<
cin>>m_P;
//进行初步数据类型判断
if (m_P < m_R)
{
cout<
}
else if (m_P == m_R)
{
cout<
}
else
{
m = m_P - m_R;
Dispose(m);
}
}// End of main
void Dispose(float m_Money) { //初始化货币 int m_50 = 0; int m_20 = 0; int m_10 = 0; int m_5 = 0; int m_1 = 0; int m_05 = 0; int m_01 = 0;
// 极简写法 // for (; m_Money>=50; m_50++,m_Money -= 50) // {}
//计算找零50的张数
while (m_Money>=50)
{
m_50++;
m_Money -= 50;
}
//计算找零20的张数
while (m_Money>=20)
{
m_20++;
m_Money -= 20;
}
//计算找零10的张数
while (m_Money>=10)
{
m_10++;
m_Money -= 10;
}
//计算找零5的张数
while (m_Money>=5)
{
m_5++;
m_Money -= 5;
}
//计算找零1的张数
while (m_Money>=1)
{
m_1++;
m_Money -= 1;
}
//计算找零5毛的张数
while (m_Money>=0.5)
{
m_05++;
m_Money -= 0.5;
}
//计算找零1毛的张数
while (m_Money>=0.1)
{
m_01++;
m_Money -= 01;
}
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}