【整数列表求三的倍数】

news2024/11/24 10:27:58

问题描述: 给定一个从1到n的整数列表,从第一个数字开始计数,遇到3的倍数时,将该数从列表中删除,直至列表末尾。
在剩下的数字中,从第一个数字开始,继续之前的计数值,同样遇到3的倍数时,删除该数。
循环上面的步骤,直到列表中只剩下一个数字。
根据指定的数字n,来判断最后剩下的数字是哪个。

在这里插入图片描述
刚开始看到这个题目的意思,懵了,不知道题目什么意思,后面多看几遍就懂了。题目的意思是输入一个n,然后在这1-n个整数列表中,从第一个数开始计数,比如对于n=5,就是从1开始计数,这个计数指的是每个位置的索引,当计数到3时,是三的倍数,所以第三个数对应的数值应该被删除,删除之后,之前的计数值从第一个数开始计数,比如第一步计数到5,此时数字3被删除了,又从第一个开始计数,计数值从5开始数!,所以此时的第一个数的索引是6,又是3的倍数,要删除。以此类推…

解题步骤:
1、定义一个列表,存放n个数值,创建一个临时列表B,用来存放要删除的数的索引;
2、进入循环,首先判断原列表长度是否为1,若为1则直接输出,否则,从第一个数开始,定义一个计数变量,每遍历一个数,就计数一次,当计数变量是3的倍数时,将此时元素下标放到B中,当遍历完原列表时,开始从后往前遍历B,然后从原列表中删除对应元素。
3、B列表遍历完后,删除B中的元素。以此循环,直到原列表中只剩下一个元素为止。

代码:

import java.util.*;
public class DeleteThreeTimes {
    public static void main( String[] args ) {
        //接收输入信息
        Scanner scanner = new Scanner(System.in);
        int nextInt = scanner.nextInt();
        //生成数组
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < nextInt; i++) {
            list.add(i+1);
        }

        //计数变量
        int count = 0;
        //每一次循环结束后,待删除的元素下标的集合
        ArrayList<Integer> removeIndex = new ArrayList<>();

        while (true){
            //记录当前集合长度
            int oldLength = list.size();
            if (oldLength == 1){
                System.out.println("最终结果:"+ list.toString());
                return;
            }
            //遍历集合
            for (int i = 0; i < oldLength; i++) {
                count++;
                if (count %3 == 0){
                    //记录待删除的元素下标
                    removeIndex.add(i);
                }
            }
            //循环结束,删除指定下标元素
            int size = removeIndex.size();
            //从后往前删,因为从前往后删,一但删除元素,就会导致后面未删除的元素下标变化
            for (int i = size; i >0; i--) {
                int x = removeIndex.get(i-1);
                list.remove(x);
            }
            //清空removeIndex
            removeIndex.clear();
        }
    }
}

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

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

相关文章

插值法修正排斥能

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有3个点&#xff0c;B全为0&#xff0c;排列组合A&#xff0c;统计迭代次数并排序。 其中的7组数据 差值结构 迭代次数 构造平均列 L E 0 1…

Jmeter的自动化测试实施方案

前言&#xff1a; Jmeter是目前最流行的一种测试工具&#xff0c;基于此工具我们搭建了一整套的自动化方案&#xff0c;包括了脚本添加配置、本地配置和运行、服务器配置等内容&#xff0c;完成了自动化测试闭环&#xff0c;通过这种快捷简便高效的方式&#xff0c;希望可以解…

【云原生之Docker实战】使用Docker部署flatnotes笔记工具

【云原生之Docker实战】使用Docker部署flatnotes笔记工具 一、flatnotes介绍1.1 flatnotes简介1.2 flatnotes特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载flatnotes…

Python“梦寻”京东商品详情数据接口(含代码示例)

要通过京东的API获取商品详情数据&#xff0c;您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过京东开放平台API获取商品详情数据&#xff1a; 首先&#xff0c;确保您已注册成为京东开放平台的开发者&#xff0c;并创…

SourceTree安装教程

PS&#xff1a;SourceTree是一款流行的免费Git和Mercurial版本控制工具&#xff0c;由Atlassian开发和维护。它提供了一个直观且功能强大的图形用户界面&#xff0c;方便开发人员管理和浏览代码仓库 说白了&#xff0c;他就是一个可视化的git界面&#xff0c;还是非常好用的&am…

10.Redis 渐进式遍历

Redis 渐进式遍历 渐进式遍历scan 渐进式遍历 keys 命令一次性的把整个redis中所有的key都获取到&#xff0c;keys *但这个操作比较危险&#xff0c;可能会一下子得到太多的key,阻塞 redis 服务器。 通过渐进式遍历&#xff0c;就可以做到&#xff0c;既可以获取到所有的 key&…

wireshark 流量抓包例题

一、题目一(1.pcap) 题目要求&#xff1a; 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀&#xff08;加上下划线例如abc&#xff09; 4.第一个受害主机网站数据库的名字 看到题目SQL注入&#xff0c…

Python 案例实训教学,支持“教师-学生”双视角切换|ModelWhale 版本更新

学年伊始、辞旧迎新&#xff0c;金秋九月&#xff0c;ModelWhale 迎来新一轮的版本更新&#xff0c;持续优化你的使用体验。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; • 新增 “教师-学生”双视角切换&#xff08;团队版✓&#xff09; • 新…

测试架构师必备技能 —— Nginx安装部署实战

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。在高并发访问的情况下&#xff0c;Nginx是Apache服务器不错的替代品。官网数据显示每秒TPS高达50W左右。本文…

从《孤注一掷》出发,聊聊 SSL 证书的重要性

你去看《孤注一掷》了吗&#xff1f;相信最近大家的朋友圈和抖音都被爆火电影《孤注一掷》成功刷屏。取材于上万真实案例的《孤注一掷》揭露了缅甸诈骗园区残暴的统治&#xff0c;以及电信诈骗中系统性极强的诈骗技巧&#xff0c;引发了大量讨论。 图片来源于电影《孤注一掷》…

PostgreSQL 查询语句大全

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

多应用模式下,忽略项目的入口文件,重写Apache规则

多应用模式下&#xff0c;忽略项目的入口文件&#xff0c;重写Apache规则 首先&#xff0c;我的项目是具有两个应用&#xff0c;admin和index,同时给它们绑定了域名&#xff0c;但是每次访问时都需要加入项目的入口文件地址 index.php ,为了忽略这个入口文件&#xff0c;只能通…

Windows ROS2使用教程01-基础环境配置

Windows ROS2使用教程01-基础环境配置 背景及初衷 windows下ros2相关的文章比较少&#xff0c;官方文档针对windows的相关描述也有很多不明确的地方&#xff0c;现结合ros2官方文档关键点实操记录&#xff0c;希望对大家有所帮助&#xff1b;共勉&#xff01; ROS2环境配置 …

现代化畜牧业行业分析 - 商品猪养殖

改革开放以来&#xff0c;中国畜牧业生产基础条件不断改善、生产方式快速转变&#xff0c;畜牧业综合生产能力和保障市场有效供应能力不断加强。中国肉类、禽蛋产量均居世界第一位&#xff0c;奶类产量居世界第三位。随着产量的增长&#xff0c;中国人均畜产品占有量也持续上升…

手机电脑scoket通信 手机软件 APP inventor 服务端程序python

python scoket 通信 再帮助同学坐课题的时候接触到了scoket通信&#xff0c;了解到这应该是基层网络通信的原理&#xff0c;于是就导出搜索了一下相关的资料&#xff0c;简单来说scoket通信就是&#xff0c;可以让不同设备在同一个网络环境的条件下&#xff0c;可以实现相互通…

解读bl616的startup.S文件

startup.S是bl616的启动文件&#xff0c;以汇编格式存在。这就导致对需要看懂此文件的人要level高一些了&#xff0c;再加上汇编竟然是risc-v的&#xff0c;而不是arm的&#xff0c;导致本人还要恶补一下risc-v的汇编指令和risc-v的寄存器。 这里推荐一下比较的介绍risc-v架构…

百度云对象存储的图片转webp不展示图片的解决方案

前言 百度云对象存储的图片&#xff0c;加上图片处理的参数后&#xff08;像这种转webp格式的请求https://xxxxxxxx.cn/xxxxxx.jpg?x-bce-processimage/format,f_webp&#xff09;&#xff0c;由于图片过大&#xff0c;导致请求超时了。提交了工单咨询后解决了&#xff0c;特…

python评分卡模型

信用风险计量模型可以包括跟个人信用评级&#xff0c;企业信用评级和国家信用评级。人信用评级有一系列评级模型组成&#xff0c;常见是A卡&#xff08;申请评分卡&#xff09;、B卡&#xff08;行为模型&#xff09;、C卡&#xff08;催收模型&#xff09;和F卡&#xff08;反…

百度抓取香港服务器抓取超时是什么情况?

​ 网络延迟导致抓取超时 网络延迟是指从发送请求到接收响应之间的时间延迟。如果网络延迟过高&#xff0c;服务器可能无法及时响应请求&#xff0c;导致超时。在香港服务器上抓取数据时&#xff0c;如果网络延迟过高&#xff0c;可能会出现抓取超时的情况。 服务器负载过高可能…

【Tkinter界面:练习-01】窗口-部件-布局

一、说明 python在用户界面开发中&#xff0c;其中有QT5&#xff0c;和Tkinter&#xff1b;对于实际项目&#xff0c;界面需要高大上&#xff0c;因此用QT5&#xff0c;对于开发人员的演示程序&#xff0c;或简单程序中&#xff0c;不建议QT5&#xff1b;用Tkinter已经足够。本…