C++学习之路 | PTA乙级—— 1005 继续(3n+1)猜想 (25分)(精简)

1005 继续(3n+1)猜想 (25分)

卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。
当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他数字所覆盖。
现在给定一系列待验证的数字,我们只需要验证其中的几个关键数,就可以不必再重复验证余下的数字。你的任务就是找出这些关键数字,并按从大到小的顺序输出它们。
输入格式:

每个测试输入包含 1 个测试用例,第 1 行给出一个正整数 K (<100),第 2 行给出 K 个互不相同的待验证的正整数 n (1<n≤100)的值,数字间用空格隔开。
输出格式:

每个测试用例的输出占一行,按从大到小的顺序输出关键数字。数字间用 1 个空格隔开,但一行中最后一个数字后没有空格。
输入样例:

6
3 5 6 7 8 11
输出样例:

7 6

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(int a, int b)
{return a > b;
}
int main()
{int n, x, vist[10000] = { 0 }, flag = 0;//vist数组标记元素,flag:输出的格式匹配,第一个元素不能是空格cin >> n;vector<int> v;for (int i = 0; i < n; i++){cin >> x;v.push_back(x);while (x != 1)//将该元素产生的子序列标记{if (x % 2 == 0){x = x / 2;}else{x = (x * 3 + 1) / 2;}if(!vist[x])vist[x] = 1;   //如果该元素未被访问,标记为1}}sort(v.begin(), v.end(), cmp);//从大到小排序for (int i = 0; i < v.size(); i++){if (vist[v[i]] == 0)//未被标记才打印{if (flag++ == 0)//flag==0是不需要打印空格{cout << v[i];}else{cout << " " << v[i];}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python实现地牢迷宫生成

python实现地牢迷宫生成基本属性生成房间生成墙壁生成门口生成通道基本属性 定义当前地牢的等级&#xff0c;地图长宽&#xff0c;房间数量&#xff0c;房间的最小最大长度&#xff0c;如下 class Map:def __init__(self):self.width 30self.heigh 30self.level 1self.roo…

Parameterize Method(令函数携带参数)

若干函数做了类似的工作&#xff0c;但在函数体中却包含了不同的值 重构&#xff1a;建立单一函数&#xff0c;以参数表达那些不同的值。

「谷歌大脑」提出通过对长序列进行摘要提取,AI可自动生成「维基百科」

原文来源&#xff1a;arXiv作者&#xff1a;Peter J. Liu、Mohammad Saleh、Etienne Pot、Ben Goodrich、Ryan Sepassi、Łukasz Kaiser、Noam Shazeer「雷克世界」编译&#xff1a;嗯~阿童木呀最近&#xff0c;经过研究证明&#xff0c;生成英文维基百科&#xff08;English W…

redis基本用法学习(C#调用CSRedisCore操作redis)

除了NRedisStack包&#xff0c;csredis也是常用的redis操作模块&#xff08;从EasyCaching提供的常用redis操作包来看&#xff0c;CSRedis、freeredis、StackExchange.Redis应该都属于常用redis操作模块&#xff09;&#xff0c;本文学习使用C#调用CSRedis包操作redis的基本方式…

简明Python教程学习笔记_3_模块

模块 如果你想要在其他程序中重用很多函数&#xff0c;那么你该如何编写程序呢&#xff1f;你可能已经猜到了&#xff0c;答案是使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块&#xff0c;模块的文件名必须以.py为扩展名。 pyt…

年轻的程序员该如何规划自己的未来

下面是网友良少给我的回信,觉得其中一些内容具有警世作用,征得良少本人同意后,特公开其回信-------------------------------------------------------------------------------------------------------------------------- 孝祥&#xff1a;您好&#xff01;非常感谢您的邀请…

C++学习之路 | PTA乙级—— 1006 换个格式输出整数 (15分)(精简)

1006 换个格式输出整数 (15分) 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 …

python: 使用socket实现局域网不同主机通信。解决ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

目录1 socket的使用1.1 TCP方法1.2 UDP方法2 局域网内连接2.1总结1 socket的使用 1.1 TCP方法 在socket中使用socket.socket建立会话&#xff0c;如果是服务器&#xff0c;需要绑定服务器地址和端口号&#xff0c;然后进行循环监听&#xff0c;当有客户端连接时再接收数据。 …

Replace Parameter with Explicit Methods(以明确函数取代参数)

函数的行为&#xff0c;完全取决于参数值 public void setValue(final String name, final int value) {if ("height".equals(name)) {this.height value;return;}if ("width".equals(name)) {this.width value;return;}Assert.shouldNeverReachHere();…

德勤:2018年科技、传媒和电信行业未来趋势预测

来源&#xff1a;亿欧近日&#xff0c;德勤发布了《2018科技、传媒和电信行业预测》报告&#xff0c;对世界与中国的科技、传媒和电信行业在未来1-5年的趋势进行了预测。该报告通过与世界各国行业主管和评论家的数百场访谈及对世界各地数万名消费者进行的调查&#xff0c;分析了…

简明Python教程学习笔记_4_数据结构

在Python中有三种内建的数据结构——列表、元组和字典。 列表 list是处理一组有序项目的数据结构&#xff0c;即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表&#xff0c;上面记载着你要买的东西&#xff0c;你就容易理解列表了。只不过在你的购物表上&…

動態修改SiteMapPath路徑

http://www.purecs.net/Threads/t376.aspx在網頁上放置一個SiteMapPath可以提供使用者一個清楚的瀏覽路標指示&#xff0c;如果你的SiteMap是靜態不會變動的倒是很簡單&#xff0c;只要編寫好一個XML檔放上去&#xff0c;其它的事就可以不用管了&#xff0c;但是在動態網頁中Si…

C++学习之路 | PTA乙级—— 1007 素数对猜想 (20分)(精简)

1007 素数对猜想 (20分) 让我们定义d ​n ​​ 为&#xff1a;d ​n ​​ p ​n1 ​​ −p ​n ​​ &#xff0c;其中p ​i ​​ 是第i个素数。显然有d ​1 ​​ 1&#xff0c;且对于n>1有d ​n ​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给…

python: SHA256算法的实现和消息的哈希散列值计算

目录1 SHA2562 实现原理2.1 消息预处理2.2 使用的常量和循环移位函数2.3 主循环3 结果4 对中文编码1 SHA256 SHA256是SHA-2下的一个子算法&#xff0c;与之类似的还有SHA224、SHA384、SHA512&#xff0c;算法原理基本一致。 哈希算法通过对消息进行计算&#xff0c;生成一定长…

财报上的云计算战场: 巨头们垄断加剧

来源&#xff1a; 第一财经一周之内&#xff0c;四大云业务巨头公司前后脚发布财报。亚马逊的云业务&#xff08;AWS&#xff09;依然跑在了最前面&#xff0c;以174亿美元排在首位。微软、谷歌、阿里巴巴也没有放慢步伐。阿里云去年累计的营收超过了百亿&#xff1b;微软的Azu…

Preserve Whole Object(保持对象完整)

从某个对象中取出若干值&#xff0c;将它们作为某一次函数调用的参数 int low daysTempRange().getLow(); int height daysTempRange().getHigh(); withinPlan plan.withinRange(low, high); 重构&#xff1a;改为传递整个对象 withinPlan plan.withinRange(daysTempRan…

简明Python教程学习笔记_5_解决问题

问题 我提出的问题是&#xff1a; 我想要一个可以为我的所有重要文件创建备份的程序。 尽管这是一个简单的问题&#xff0c;但是问题本身并没有给我们足够的信息来解决它。进一步的分析是必需的。例如&#xff0c;我们如何确定该备份哪些文件&#xff1f;备份保存在哪里&#…

【开始研究Community Server,转贴一点东西】Community Server资料收集

Community Server学习资料 uGoer 系列文章 Community Server专题一&#xff1a;概述Community ServerCommunity Server专题二&#xff1a;体系结构Community Server专题&#xff1a;附件(DOC&PPT)--2005年10月10日更新Community Server专题三&#xff1a;HttpModuleCommuni…

python实现RSA算法,对数据进行加密认证

RSA算法RSA一、数学原理二、实现代码1 生成素数2 生成秘钥3 对数据进行加密、解密总结RSA RSA是一种非对称加密体制&#xff0c;由公钥和私钥组成&#xff0c;数学原理是实数域的模余法。在使用私钥对数据进行加密后&#xff0c;可用公钥对数据进行解密。 在RSA算法中&#xf…

C++学习之路 | PTA乙级—— 1008 数组元素循环右移问题 (20分)(精简)

1008 数组元素循环右移问题 (20分) 一个数组A中存有N&#xff08;>0&#xff09;个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M&#xff08;≥0&#xff09;个位置&#xff0c;即将A中的数据由&#xff08;A ​0 ​​ A ​1 ​​ ⋯A …