牛客網 - 郵票(set的遍歷)

題目描述

某人有8 角的郵票5 張,1 元的郵票4 張,1 元8 角的郵票6 張,用這些郵票中的一張或若干張可以得到多少中不同的郵資?

知識點:

  1. 注意set的遍歷方法:(其他容器包括 vector 也是這樣)

a. 第一種用指針的方式 :

set< float>totle;
set<float>::iterator it; 
for (it = totle.begin(); it != totle.end(); it++)
	cout<<*it<<endl;

b. 第二種方法用容器的下標索引

 set< float>totle;
  for (int i = 0; i < totle.size(); i++)
      cout << totle[i];
  1. 剛開始想怎麼可以得到任意麪額的組合,後來想麻煩了,本來數據量也不大,所以三個 for 嵌套無所謂的。
#include <iostream>
#include <string>
#include <set>
using namespace std;

int main()
{
	set<float>totle;
	int count = 0;
	for (int i = 0; i <= 5; i++)
		for (int j = 0; j <= 4; j++)
			for (int n = 0; n <= 6; n++)
			{
				totle.insert(i*0.8 + j * 1 + n*1.8);    // !!!
			}
	set<float>::iterator it;      // set容器的遍歷
	for (it = totle.begin(); it != totle.end(); it++)
		count++;
	cout << count-1 << endl;

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章