【每日编程Day30】最难的问题 因子个数

news2024/9/29 17:38:59

目录

一、选择题

二、编程题

1、最难的问题

2、因子个数


一、选择题

 

(1)当包装类与基本数据类型比较,包装类会自动茶香变为基本数据类型再比较;

(2)包装数据类直接赋值,默认调用其对用的valueOf()方法。那么Integer i03=Integer.valueOf(59);就等价于Integer i01=59;valueOf()操作-128 ~ 127之内的整型,在第一次引用,会在缓存中new一个对象;再次引用,直接从缓存中查找;操作-128 ~ 127之外的整型,则每次都要new一个对象。也就是说如果已经创建了一个-128 ~ 127之间的整数,使用valueOf创建第二次时,不会使用new关键字,而用已经缓存的对象。因此System.out.println(i01i03);输出true。

(3)包装类是基础数据类型的引用类型,i04的定义使用了new关键字,这会开辟出一块新内存来放置值为59的Integer对象。那么两个地址不同的引用类型变量进行==判断结果自然是false。

笔试强训day30_考虑下面这个简单的例子, [单选题5分 public class dumpmethods( publ_@~007的博客-CSDN博客
  一道关于Integer的笔试题_Sweetie77的博客-CSDN博客

 Java中String类型变量是immutable(不可变的)。
        尽管 change()方法中的str与sv.str都是实例成员变量值"6"的引用, 由于String类型的 不可变性,change()方法中的str="10"语句实际上是将传入的str副本引用指向了一个值为“10”的新的内存地址,但原数据引用 sv.str的引用值(也就是“6”的内存地址)并没有发生改变,因此sv.str指向的值仍旧为6。


        这种情况下则是将srt指向的地址的值从1改成了2,而不是直接将str的副本引用指向一个新地址。


 

 这种情况则是将str的副本引用指向了一个新的内存地址,但原数据引用sv.str并不受影响。笔试强训day30_考虑下面这个简单的例子, [单选题5分 public class dumpmethods( publ_@~007的博客-CSDN博客

Java内存管理大杂烩_还能坚持的博客-CSDN博客


二、编程题

1、最难的问题

 

 思路:

遍历字符串:如果是大写字母就进行变换,否则说明是空格直接拼接;

由于题目中说了只有大写字母和空格,所以问题1可以忽略 。

问题1:怎么判断是大写字母?

        ASCII:大写字母的范围是65-94 int a = Integer.valueOf(char)

问题2:如果是大写字母,就进行转化:

(1)如果要解密的密码字母在A-E之间,则其对应的原文值=密码字母+21;

(2)否则:原文值=密码字母-5;

 public static void main(String[] args) {        
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()){
            //1、获取输入的字符串
            String str = sc.nextLine();
            //2、定义一个字符串容器,用来拼接解密后的字符
            StringBuilder sb = new StringBuilder();
            //2、遍历字符串,获取字符:判断字符的所属类型
            for (int i = 0; i < str.length(); i++) {
                char c = str.charAt(i);
                //如果是空格,直接拼接
                if(c == ' '){
                    sb.append(" ");
                }else{
                    //说明是大写字母
                    //判断大写字母的类型:是大于E的情:注意这里-5或者+21之后要转为char类型
                    if(c > 'E'){
                        sb.append((char)(c-5));
                    }else{
                        //是A-E的情况
                        sb.append((char)(c+21));
                    }
                }
            }
            System.out.println(sb);
        }
    }

2、因子个数

 一开始题目都没有读懂,不理解示例的结果为什么是这样的?

后来发现这里的因子指的是质因子:
 

 思路:

        理解一个数是由若干个素数乘积得来的,那么我们可以从小到大进行枚举,如果n能够被整除,则将n中所有的该因子都除尽,并将n更新为除尽后的数,然后枚举下一个数以此类推。当然,如果n本身就是一个素数,最终n的值会大于1,所以最后还需要判断n是否为1,如果不为1因子还包括n本身,计数需要加1。

【算法刷题日记之本手篇】最难的问题与因子个数_未见花闻的博客-CSDN博客

public static void main(String[] args) {
        //1、获取输入数据
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
           int n = sc.nextInt();
           //2、定义变量count
            int count = 0;
            for (int i = 2; i < Math.sqrt(n); i++) {
                //3、因为不能重复计数,所以先算符合因子数的个数
                if(n % i == 0){
                    count++;
                }
                //4、更新n的值
                while (n % i == 0){
                    n/=i;
                }
            }
            //5、判断n值是否为1:如果不为1说明该数字是一个质数,因子数包含n本身,计数要加1
            if(n!=1){
                count++;
            }
            System.out.println(count);
        }
    }

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

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

相关文章

项目经理提高影响力的6大原则

在很多临时组建的项目团队中&#xff0c;项目经理往往处于权、责、利不匹配的尴尬状态&#xff0c;即有责无权。项目经理既需要对项目目标的实现负责&#xff0c;又没有相匹配的权利。 在这种情况下&#xff0c;项目经理不能通过权利进行团队管理&#xff0c;只能通过个人影响力…

cmd 108个常用命令,看看你知道多少

背景 一、CMD是什么 在不同的操作系统环境下&#xff0c;命令提示符各不相同&#xff0c;在Windows环境下&#xff0c;命令行程序为cmd.exe&#xff0c;是一个32 位的命令行程序。 cmd是指命令提示符&#xff0c;是在操作系统中&#xff0c;提示进行命令输入的一种工作提示符…

SpringBoot处理实际开发中常见的七种全局异常详解(全面详细+Gitee源码)

前言&#xff1a;在日常的开发工作中&#xff0c;项目在运行过程中多多少少是避免不了报错的&#xff0c;对于报错信息肯定不可以把全部信息都抛给客户端去显示&#xff0c;这里就需要我们对常见的七种异常情况统一进行处理&#xff0c;让整个项目更加优雅。 目录 一、基本介绍…

别迷茫!电子与通信相关专业,详细就业方向!

一、通信领域 1、算法工程师 算法工程师对我们来说&#xff0c;有两种可选择的方向&#xff0c;一种是通信算法工程师&#xff0c;一种是信号处理算法工程师。 通信算法工程师&#xff1a;需要对通信目标、干扰、杂波和信道模拟进行算法研究与数学仿真。了解4G和5G的相关技术。…

【Logback技术专题】「入门到精通系列教程」深入探索Logback日志框架的原理分析和开发实战技术指南(中篇)

深入探索Logback日志框架的原理分析和开发实战技术指南&#xff08;下篇&#xff09; Logback日志框架slf4j和logback的关系slf4jSlf4j的核心代码getLogger方法LoggerFactory的bind()方法 slf4j logback配置 log4j和logback的关系Logback的配置文件配置文件读取顺序 Logback配置…

告别StringUtil:使用Java 全新String API优化你的代码

前言 Java 编程语言的每一次重要更新&#xff0c;都引入了许多新功能和改进。 并且在String 类中引入了一些新的方法&#xff0c;能够更好地满足开发的需求&#xff0c;提高编程效率。 repeat(int count)&#xff1a;返回一个新的字符串&#xff0c;该字符串是由原字符串重复指…

MySQL数据库基础 16

第十六章 变量、流程控制与游标 1. 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量 1.2 用户变量1.2.1 用户变量分类1.2.2 会话用户变量1.2.3 局部变量1.2.4 对比会话用户变量与局部变量 2. 定义条件与处理程序2.1 案例分析2.2 定义条件2.3 定义处理程序2.4 案例解决 3…

灵魂组件Lifecycle的生命周期机制详解

作者&#xff1a;苏火火 前言 在早期 Andorid 架构中&#xff0c;生命周期的事件监听和状态查询&#xff0c;我们需要自定义一套提供侦测功能的 Activity/Fragment 基类及回调接口&#xff0c;在 Activity/Fragment 的生命周期方法中实现依赖组件的操作&#xff0c;在外部进行…

【并发编程】多线程安全问题,如何避免死锁

文章目录 概念进程线程对比 代码使用进程线程 线程创建方式线程的生命周期和状态停止线程方法介绍sleep() / wait()为什么 wait() 不被定义在 Thread 中&#xff1f;sleep() 定义在 Thread 中&#xff1f;run()/start() 为什么使用多线程&#xff1f;线程安全问题线程死锁如何避…

可孚医疗:「最懂互联网」的医疗器械企业是如何炼成的?

如果说钉钉在过去的标签是软件&#xff0c;是低代码。那么在医疗这个赛道里&#xff0c;这些标签已经不足以成为钉钉价值的侧写&#xff0c;除了固有标签之外&#xff0c;在可孚医疗的场景里&#xff0c;钉钉可以连接&#xff0c;可以成为智能BI&#xff0c;也更可以做到内外部…

(旧版) 家居购项目 1.分页导航 2.购物车 3.订单生成 4.权限验证 5.事务管理 6.上传图片

文章目录 &#x1f400;Java后端经典三层架构&#x1f407;MVC模型&#x1f407;开发环境搭建&#x1f407;会员注册&#x1f333;前端验证用户注册信息&#x1f333;思路分析&#x1f349;创建表&#x1f349;创建实体类&#x1f349;DAO&#x1f34c;MemberDAOImpl &#x1f…

kali磁盘空间不足,软连接解决apt下载问题

知识点&#xff1a; ①在Linux系统下(其他操作系统也有类似的规定)&#xff0c;磁盘的分区大致可以分为三类&#xff0c;分别为主分区、扩展分区和逻辑分区等等。 ②主分区可以有1-4个&#xff0c;扩展分区可以有0-1个&#xff0c;逻辑分区编号从5开始。 ③主分区可以直接进行格…

数据库信息速递 DataStax与谷歌合作将向NoSQL AstraDB引入向量搜索技术

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

机器学习5:基于线性回归理解减少“损失”的方法

在上节《机器学习4&#xff1a;基本术语》中&#xff0c;笔者介绍了“损失&#xff08;Loss&#xff09;”的定义&#xff0c;在训练模型时&#xff0c;减少损失&#xff08;Reducing Loss&#xff09;是极为关键的&#xff0c;只有“损失”足够小的机器学习系统才有实用价值。…

【数据库】mysql主从复制与读写分离

文章目录 一、读写分离1. 什么是读写分离2. 为什么要读写分离3. 什么时候要读写分离4. 主从复制与读写分离5. Mysql 主从复制原理&#xff08;主从复制的类型&#xff09;6. Mysql 主从复制的工作过程7. Mysql 读写分离原理 二、主从复制的配置操作1. 环境配置2. 搭建 MySQL主从…

从第一性原理揭秘爱因斯坦相对论

摘要&#xff1a; 本文首先将探讨狭义相对论的基本原理及其起源。接着&#xff0c;我们将深入分析狭义相对论的世界观给我们的认知带来了哪些本质的改变。最后&#xff0c;我们将探讨狭义相对论为何无法解决引力的矛盾性问题&#xff0c;以及广义相对论是如何有效解决此类问题的…

最大匹配问题---男女匹配问题(算法)

扯淡&#xff1a; 今天期末复习的时候发现一个算法很有意思&#xff0c;就是男女最大分配对象问题&#xff0c;几对男女最多能凑够几对对象。 根据社会主义核心价值观&#xff0c;我们最好整一夫一妻制&#xff0c;分配一人一对象&#xff0c;我辈义不容辞。 题目分析&#…

需求分析六步法

需求收集可能看起来不言自明&#xff0c;但它很少得到应有的充分关注。就像运动前伸展或睡前刷牙一样&#xff0c;这是一项经常被忽视的简单任务。 但是&#xff0c;忽视这些看似简单的事情的后果可能会导致伤害、蛀牙&#xff0c;或者在项目管理的情况下&#xff0c;导致项目…

GeoServer发布图层遇到的几个雷点及解决方案

目录 前言 一、图层编码导致图层预览无服务的异常问题 1、问题描述 2、问题分析 3、问题解决 二、图层空间参考投影设置的问题 1、问题描述 2、问题分析 3、问题解决 三、Qgis导出的SLD在GeoServer中发布预览报错的问题 1、问题描述 2、问题分析 3、问题解决 四、GeoS…

java 临床症状识别系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 JSP 临床症状识别系统 是一套完善的系统源码&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;以及相应配套的设计文档&#xff0c;系统主要采用B/S 模式开发。 研究的基本内容是基于Web的临床症状识别…