今天C++实验有个实验报告
题目是:编写C++风格的程序,解决百钱问题,将1元人民币兑换成1,2,5分的硬币,有多少种换法?
自己开始写程序 代码是:
//2011/11/29 by MatrixA
//编写C++风格的程序,解决百钱问题,将元人民币兑换成,,分的硬币,有多少种换法
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
int CaculateTheNumber(int number) //这个算法以为对象分别进行讨论
{
intcounter=0; //计数器
inttimeNum; //现在i中变化的值
for(int i=number;i>0;i--)
{
timeNum=i;
while(timeNum>0) //按照程序中有、、...n个讨论其中有多少个
{
if(timeNum%5==0)
{
counter++;
timeNum-=2;
}
else
{
timeNum-=2;
if(timeNum==0) counter++;
}
}
}
returncounter+1; //这边加上的原因当全部都是的时候的那种也要算进去
}
int main()
{
intmoney,_number;
cout<<setw(28)<<"将X元人民币兑换成,,分的硬币程序"<<endl;
cout<<"请输入您要分解的钱数的大小(元):";
cin>>money;
money=100*money;
_number=CaculateTheNumber(money);
cout<<"请输入的钱数可以被分解成"<<_number<<" 种数...."<<endl;
system("pause");
return0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,k;
int sum=0;
for(i=0;i<=100;i++)
for(j=0;j<=50;j++)
for(k=0;k<=20;k++)
{
if(i*1+2*j+5*k==100)
sum++;
}
cout<<"总数为:"<<sum<<endl;
}
后来自己分析了下 发现自己的代码虽然代码数量多 但是在算法复杂度上有明显的优势哈哈 发现仔细学 严蔚敏的 数据结构 果然有一定的效果 哈哈~~
发下 和大家分享 ~~ 哈....