week8_1

1.问题分析

题目要求①输入n组数据,每组数据有十个②找出所有数据中优先级最高和最低的值③优先级定义:P(a)>P(b),a的质因子数目大于b,质因子数目相同,数值大的优先级高。

先写一个Factor()函数用于查找数字的质因子个数,需要注意的是,质因子不包括数值本身,比如3的质因子个数是0,不是1。

在主函数中,我用的是map<int,vector<int> >容器,键——质因子数目,值——对应的数字,vector没有排序功能,所以要自己排序。比较费劲的是,没办法直接对map容器里的vector进行删除,添加,排序的操作,只能用tem来暂存,然后完全覆盖,这样做效率比较低。不过代码量和用multiset容器几乎相同。

2.解决方案

①Factor()函数,查找质因子数目

②主函数中先判断map中是否存在对应的值,不存在的话,需要先弄一个tem存进一个值,再插进去。存在的话,需要弄出值对应的数组,再插进数去。

③找出Map[begin]中的最小数,和Map[end-1]中的最大数。存在re[2]中,在数组中删除再放回Map容器。

3.算法设计

4.编程实现

猜你喜欢

转载自www.cnblogs.com/19991201xiao/p/8977167.html
今日推荐