帮忙用详细C++解题,要求上机通过。

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:15:50
某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?
binbinzhe的答案是穷举呀,可是相同费用的组合没有排除在外,再改进一下啊~
是不是要建立一个动态数组来保留每种组合的总价,然后一遍遍的查询?

//为了方便计算,以角为单位,最多有5*8+4*10+6*18=188角,估邮资种数必不超过188种,用数组recorde来记录共有多少种
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
int p=0;
int temp=0;
int recorde[188];
int rec=0;
//对 recorde初始化--不一定得初始化
for(int r=0;r<=187;r++) recorde[r]=0;
//下面开始计算种数
for(int i=0;i<=5;i++)
{ for(int j=0;j<=4;j++)
{for(int k=0;k<=6;k++)
{temp=i*8+j*10+k*18;
recorde[temp]=temp;}}}//这样的话话 相同的值就会被覆盖,只检查recorde中有多少个不为零
for(p=0;p<=187;p++) {if(recorde[p]!=0) rec++;}
cout<<"总共有 "<<rec<<"种不同的邮资"<<endl;
}

#include <iostream>
using namespace std;
void main()
{ bool flag = false;
int number = 0;
for(int i=1;i<=8;i++)
{
number ++;
cout<<number<<" :"<<"8角的"<<i<<"张