C++面试宝典30题丨第一题:开灯

news2024/11/24 4:34:16

专栏导读

见得题目越多,考试时抽中的概率也越大。每一题都有详细的解答思路和独有的视频讲解

本文收录于:C++面试宝典(送视频讲解)

☆☆☆购买专栏后,请加微信会私发讲解视频!

题目描述

一条名叫Mango的街上有 N 站灯。起始时,所有的灯都是关的。每盏灯上都有着一个按钮,每按一次按钮灯将会进行一次相反操作,即开着变关着,关着变开着。这时,编号为 1 的人走过来,把是1的倍数的灯全部按一次按钮,编号为 2 的人把是 2 的倍数的灯全部按一次按钮,即编号为 k 的人把是 k 的倍数的灯都按一次按钮,直到第 N 个人为止。

问题:给定 N,求 N 轮之后,还有哪几盏是开着的,每两个答案之间用空格隔开。

保证:N≤30000000,时间限制:1s

初步思路

看到这一题是不是很想直接暴力枚举,即从1-N每个人都遍历一遍。

#include<bits/stdc++.h>
using namespace std;
const int maxn=30000000;
int n;
bool a[maxn+5];
int main()
{
	for(int i=1;i<=maxn;i++) a[i]=0;//初始化一下 
	cin>>n;
	for(int k=1;k<=n;k++)
	{
		for(int j=k;j<=n;j+=k)
		{
			a[j]=!a[j];
		}
	}
	for(int i=1;i<=maxn;i++)
	{
		if(a[i]==1) cout<<i<<" ";
	}
	return 0;
}

可惜,当我们运行代码时,用了远远不止1s,严重超时了。 

找规律

☆方法☆:像这种N轮后那些灯还亮着的问题,包括类似约瑟夫的问题,都应该从小数入手。

我们可以从N=3时入手(这里用1表示开,0表示关):

轮数/灯的编号1号2号3号
第一轮111
第二轮101
第三轮100

当N=4时:

轮数/灯的编号1号2号3号4号
第一轮1111
第二轮1010
第三轮1000
第四轮1001

当你继续往后列举时,你会惊讶的发现,这些数都是平方数,好Amazing!

小Tip:如果你不想手动列举的话,你可以用暴力的那个程序,让程序去算。

AC代码

于是,代码就变得很短很短啦!

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		if(sqrt(i)*sqrt(i)==i) cout<<i<<" ";
	}
	return 0;
}

小结尾

🏆今天带你学习了一道很有趣的思维题,也学会了一个小技巧:交给程序算

🏆如果你觉得本篇文章对你有帮助的话,记得给我点个赞哦!

🏆欢迎订阅C++面试宝典(送视频讲解),暑假有优惠哦!配有亲自讲解视频!

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

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

相关文章

简过网:一建和二建的含金量,哪个难度更大一些?

你知道&#xff0c;一建和二建有什么区别吗&#xff0c;考哪个更合适自己呢&#xff1f;正在备考一建、二建的小伙伴们&#xff0c;这篇文章千万不要错过哦&#xff01; 首先&#xff0c;先说一下大家比较关注的含金量问题&#xff0c;一建含金量明显比二建高&#xff0c;但是…

MySQL篇-SQL优化实战-减少子查询

回顾 上一篇了解了分析SQL使用的explain&#xff0c;可以点击查看MySQL篇-SQL优化实战了解我在写sql的注意事项还有explain的说明&#xff0c;这次拿一段生产使用的sql进行优化说明。从14s优化到2.6s 待优化的SQL SELECT DISTINCTswpe.tag_number,hca.ACCOUNT_NAME customer…

精准定位推广盲点?Xinstall数据监测让每一分投入都见成效!

在这个数字化时代&#xff0c;App的推广早已不再是简单的“上线即成功”。面对激烈的市场竞争和日益挑剔的用户&#xff0c;如何精准监测推广数据&#xff0c;优化营销策略&#xff0c;成为了每个开发者与营销人员不得不面对的挑战。而在这个关键时刻&#xff0c;Xinstall作为一…

AI 驱动的数据中心变革与前景

文章主要探讨了AI计算时代数据中心的转型&#xff0c;涉及计算技术的多样性、规格尺寸和加速器的发展、大型语言模型&#xff08;LLM&#xff09;的发展、功耗和冷却趋势、基准测试的重要性以及数据中心的发展等方面。为大家提供深入了解AI基础设施发展的视角。 计算技术的多样…

Python 程序打印图案“G”(Python Program to print the pattern ‘G’)

在本文中&#xff0c;我们将学习如何使用星号和空格打印图案 G。给定一个数字 n&#xff0c;我们将编写一个程序&#xff0c;在 n 行或列上打印图案 G。 例子&#xff1a; 输入&#xff1a;7 输出&#xff1a; *** * * * *** * * * * *** 输入&…

红酒的秘密花园:探索葡萄的种植艺术

在远离城市喧嚣的某个角落&#xff0c;隐藏着一座神秘的红酒秘密花园。这里&#xff0c;葡萄藤缠绵交织&#xff0c;绿叶间闪烁着晶莹的露珠&#xff0c;仿佛在诉说着关于红酒与葡萄种植艺术的古老传说。今天&#xff0c;就让我们一起走进这片神秘的花园&#xff0c;探寻葡萄种…

@amap/amap-jsapi-loader 实现高德地图中添加多边围栏,并可编辑,编辑后获得围栏各个点的经纬度

先上一张效果图 看看是不是大家想要的效果&#xff5e; ❤️ 希望其中的小点能帮助大家&#xff0c;主要看怎么绘制在地图上的代码即可 1.第一步要加入项目package.json中或者直接yarn install它都可以 想必大家应该都会 "amap/amap-jsapi-loader": "0.0.7&qu…

Oracle EBS PO采购订单预审批状态处理

系统版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状: 采购订单状态:预审批 采购订单流程报错如下: po.plsql.PO_DOCUMENT_ACTION_AUTH.approve:90:archive_po not successful - po.plsql.PO_DOCUMENT_ACTION_PVT.do_action:110:unexpected error in acti…

Unity In App Purchasing内购校验

1&#xff0c;利用收据验证混淆器 把后台的key填进去&#xff0c;点击自动生成一些文件 2&#xff0c;代码过滤 using UnityEngine.Purchasing.Security;在IAPManager.cs的 public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)增加 #if !UNITY_EDITOR…

Linux—文件内系统与日志分析

目录 一、Linux文件系统 1、inode 与 block概述 1.2、inode内容 1.3、查找inode 1.4、inode故障处理 2、硬盘分区后的结构 3、访问文件的流程 4、文件恢复 4.1、恢复ext3格式文件 4.2、恢复 xfs 格式文件 二、Linux日志文件 1、日志的功能 2、日志的默认位置 3、日…

第一百四十二节 Java数据类型教程 - Java字符数据类型

Java数据类型教程 - Java字符数据类型 Character类的一个对象包装一个char值。 字符类包含isLetter()和isDigit()方法来检查字符是否为字母和数字。 toUpperCase()和toLowerCase()方法将字符转换为大写和小写。 该类提供了一个构造函数和一个工厂valueOf()方法来从char创建对…

高精度定位技术:赋能电网智能化转型的新引擎

在当今社会&#xff0c;电力作为经济发展的血脉&#xff0c;其稳定高效运行对于国家能源安全与社会发展至关重要。随着科技的飞速进步&#xff0c;高精度定位技术正逐步渗透至电网管理的各个环节&#xff0c;成为推动电网智能化转型的关键力量。本文将深入探讨高精度定位技术在…

联合查询(多表查询)

多表查询是对多张表的数据取笛卡尔积&#xff08;关联查询可以对关联表使用别名&#xff09; 数据准备 insert into classes(name, desc) values (计算机系2019级1班, 学习了计算机原理、C和Java语言、数据结构和算法), (中文系2019级3班,学习了中国传统文学), (自动化2019级5…

【java计算机毕设】美容院管理系统 项目源代码MySQL springboot vue html maven+文档 前后端可分离也可不分离

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】美容院管理系统 项目源代码MySQL springboot vue html maven文档 前后端可分离也可不分离 2项目介绍 系统功能&#xff1a; 美容院管理系统包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改…

起飞,纯本地实时语音转文字!

简介 偶然在 github 上翻到了这个项目 https://github.com/k2-fsa/sherpa-ncnn 在没有互联网连接的情况下使用带有 ncnn 的下一代 Kaldi 进行实时语音识别。支持 iOS、Android、Raspberry Pi、VisionFive2、LicheePi4A等。 也就是说语音转文字可以不再借助网络服务的接口&am…

为什么技术合作伙伴必须获得 ISO 27001 认证

在当今的数字环境中&#xff0c;强大的安全措施的重要性怎么强调都不为过。 即使是像 Snowflake 这样的巨头&#xff0c;也很少有一天不出现重大漏洞&#xff0c;据《连线》报道&#xff0c;这可能是历史上最大的漏洞之一。 此外&#xff0c;98.3%的组织与至少一家第三方供应商…

【公益案例展】四川农担x中电金信——大数据智能风控平台建设

‍ 中电金信公益案例 本项目案例由中电金信投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 1、外部经济环境带来的挑战 近几年经济发展和市场需求的挑…

关于5G和卫星

手机&#xff0c;已经串联起了我们生活中的一切环节。我们随时随地拿出手机&#xff0c;都能畅快地上网。 这一切是如此地理所当然&#xff0c;以至于我们甚至想不到这样不可思议的问题&#xff1a; 移动通信网络真的无处不在吗&#xff1f; 我们都知道&#xff0c;地球虽叫…

企业级监控系统Zabbix

文章目录 Zabbix介绍Zabbix架构Zabbix serverZabbix agentZabbix proxy Zabbix Server的安装Zabbix Agent的安装监控主机流程zabbix_get自定义模板和监控项实战用户登录数监控1.指定监控项命令2.重启Agent服务3.在Server上创建监控项4.测试监控项5.查看监控项图形 故障自愈实现…

轮廓检测(python和c++实现)

利用轮廓检测&#xff0c;我们可以检测物体的边界&#xff0c;并在图像中轻松定位。这通常是许多有趣应用的第一步&#xff0c;如图像前景提取、简单图像分割、检测和识别。 无人看管物体检测&#xff1a;公共场所的任何无人看管物体一般都被视为可疑物体。一种有效而安全的解…