1005.继续(3n+1)猜想
来源:互联网 发布:淘宝售后培训ppt 编辑:程序博客网 时间:2024/05/29 13:00
int count(int n, vector<int> &keys){ if (n == 1) { return 1; } else if (n % 2) { n = (3 * n + 1) / 2; keys.push_back(n); count(n,keys); } else { n /= 2; keys.push_back(n); count(n,keys); }}bool check(int n, vector<int> &num) //查找原数据中是否含有关键字,若有则删除{ bool mark = false; for (auto i = num.begin(); i != num.end();++i) { if (n==*i) { i = num.erase(i); if (i==num.end()) //如果是最后一项,需要手动减1迭代器,否则会溢出 { --i; } mark = true; } } return mark;}int _tmain(int argc, _TCHAR* argv[]){ int n; cin >> n; int *num = new int[n]; vector<int> num_cp; for (int i = 0; i < n;++i) { cin >> num[i]; num_cp.push_back(num[i]); } for (int i = 0; i < n;++i) //对数组中的每个数都进行关键字保存,并检查原数据中是否含有关键字 { vector<int> keys; count(num[i],keys); for (auto c:keys) { check(c, num_cp); } } for (auto i = num_cp.begin(); i != num_cp.end()-1;++i) //进行冒泡排序 { for (auto j = num_cp.end()-1; j > i;--j) { if ((*j)>(*(j-1))) { int temp = *j; *j = *(j - 1); *(j - 1) = temp; } } } for (auto i = num_cp.begin(); i != num_cp.end(); ++i) //输出 { if (i == num_cp.end() - 1) { cout << *i; } else cout << *i << ' '; } return 0;}
0 0
- 1005.继续(3n+1)猜想
- 1005.继续(3n+1)猜想
- 1005. 继续(3n+1)猜想 (25)
- PAT 1005. 继续(3n+1)猜想
- 1005. 继续(3n+1)猜想 (25)
- 1005. 继续(3n+1)猜想 (25)
- PAT 1005. 继续(3n+1)猜想
- 1005. 继续(3n+1)猜想 (25)
- 1005. 继续(3n+1)猜想 (25)
- 1005. 继续(3n+1)猜想 (25)
- 1005.继续(3n+1)猜想
- 1005. 继续(3n+1)猜想 (25)
- PAT 1005. 继续(3n+1)猜想
- pat 1005. 继续(3n+1)猜想
- 1005. 继续(3n+1)猜想 (25)
- 1005. 继续(3n+1)猜想
- 1005. 继续(3n+1)猜想 (25)
- 1005. 继续(3n+1)猜想 (25)
- Android中图片的三级缓存机制
- Hibernate Tools for Eclipse插件的安装和使用
- URL Session(Cache)
- 笔记十三(绘制二)
- 相似性度量总结
- 1005.继续(3n+1)猜想
- JUnit简单安装使用步骤总结
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest F. Gourmet and Banquet(贪心+二分)
- java设计模式(三)—单例模式
- leetcode 312 : Burst Balloons
- Android之px、dp、sp之间相互转换
- 【数据结构实验】哈夫曼编/译码
- Android下的驱动开发框架
- 宏定义中的"#"和"##"符号