邮票
题目描述:
某人有8 角的邮票5 张,1 元的邮票4 张,1 元8 角的邮票6 张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?
题目链接:https://www.nowcoder.com/practice/b6735b1bd4ff488fb9a9032457410f66?tpId=40&tqId=31029&tPage=14&rp=14&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
set<float> s;
for(int i=0;i<=5;i++)
for(int j=0;j<=4;j++)
for(int k=0;k<=6;k++)
{
float money = i*0.8+j*1.0+k*1.8;
s.insert(money);
}
cout<<s.size()-1<<endl;
return 0;
}
思考
这个题用了最简单的方法,对所有的结果进行了遍历。说实话,刚开始没这么想。可能还是做题少的原因。在这个题目中用到了set容器,感觉和Python中的元组一样,因为在这个容器中没有一样的元素。但是我在这里遇到了问题,当创建set s,double型容器的时候,在set中会出现一样的元素,违背的互异的原则,但是我不知道哪里出问题了,希望知道答案的人,可以帮助小弟一把。