(有假币,因子个数)笔试强训

news/2025/3/5 7:41:36/

  • 博主简介:想进大厂的打工人
  • 博主主页:@xyk:
  • 所属专栏: JavaEE初阶

目录

文章目录

一、选择1

二、选择2

二、[编程题]有假币

 三、[编程题]因子个数


一、选择1

在使用锁保证线程安全时,可能会出现活跃度失败的情况,活跃度失败主要包括:

在使用锁保证现场安全时可能会出现 活跃度 失败的情况主要包括 饥饿、丢失信号、和活锁、死锁 等。【多线程除了死锁之外遇到最多的就是活跃度问题了】

饥饿 :指线程需要访问的资源 被永久拒绝 ,以至于不能再继续进行。解决饥饿问题需要平衡线程对资源的竞争,如线程的优先级、任务的权重、执行的周期等。

活锁 :指线程虽然没有被阻塞,但由于某种条件不满足,一直尝试重试却始终失败。解决活锁问题需要对 重试机制 引入一些随机性。例如如果检测到冲突,那么就暂停随机的一定时间进行重试,这会大大减少碰撞的可能性。

所以本题选D~~~

二、选择2

下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是 

饥饿现象:是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。

D选项会产生饥饿现象

A、C选项,不满足短作业优先


选B选项,由于响应比=(作业执行时间十作业等待时间)/作业执行时间。

高响应比调度算法在等待时间相同的情况下,作业执行时间越短响应比越高,满足短任务优先。随着等待时间增加,响应比也会变大,执行机会就增大,所以不会产生饥饿现象

高响应比优先算法的思想,它结合了短作业优先+先来先服务+不冷落长作业等特点

二、[编程题]有假币

链接:有假币__牛客网
来源:牛客网

居然有假币! 现在猪肉涨了,但是农民的工资却不见涨啊,没钱怎么买猪肉啊。nowcoder这就去买猪肉,结果找来的零钱中有假币!!!可惜nowcoder 一不小心把它混进了一堆真币里面去了。只知道假币的重量比真币的质量要轻,给你一个天平(天平两端能容纳无限个硬币),请用最快的时间把那个可恶的假币找出来。

先枚举一些例子,找出其中规律:

  • 对于 1个硬币,称量 0次
  • 对于 2个硬币,称量 1次
  • 对于 3个硬币,称量 1次

对于 4个硬币,称量 2次,先分成(2,2,0),第一次称量前两份(2,2),如果重量不一样,再次求出判断另外2个硬币需要称量的次数。

对于 5个硬币,称量 2次,先分成(2,2,1),第一次称量前两份(2,2),如果重量不一样,再次判断另外1个硬币需要称量的次数。


对于 6个硬币,称量 2次,先分成(2,2,2),第一次称量前两份(2,2),如果重量不一样,再次判断求出另外2个硬币需要称量的次数。

对于 7个硬币,称量 2次,先分成(3,3,1),第一次称量前两份(3,3),如果重量不一样,再次判断求出另外3个硬币需要称量的次数。

通过上面分析可以看出,对于要称量的硬币,每次称量前分成3份,要求前两份的个数不小于第三份。如果前两份重量是一样,那么假币在第三份中,这样就除去了2/3的硬币。
如果前两份重量不一样,那么假币在重量轻的一份中,这样也除去了2/3的硬币。

其中有一个规则,我们每次把n分成是3堆,

 如果n % 3 == 0,分成 n/3、 n/3、 n/3三堆, 剩下 n/3

 如果n % 3 == 1,分成 n/3、 n/3、1 + (n/3)三堆,最坏剩下 1 + (n/3)

 如果n % 3 == 2,分成 n/3、 1 + (n/3)、1 + (n/3)三堆,最坏剩下 1 + (n/3)

注意是要用 最快的时间 最多需要多少次 求出假币!!!要考虑最坏的情况!!!

import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/4/21 16:30*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNextInt()) {int n = scanner.nextInt();if (n == 0) {return;} else if (n == 1) {System.out.println(0);} else if (n == 2 || n == 3) {System.out.println(1);} else {int count = 1;while (n > 3) {if (n % 3 == 0) {n /= 3;} else {n = n / 3 + 1;}count++;}System.out.println(count);}}}}

 三、[编程题]因子个数

链接:因子个数__牛客网
来源:牛客网
 

一个正整数可以分解成一个或多个数组的积。例如36=2*2*3*3,即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律,现在给出一系列正整数,他希望你开发一个程序输出每个正整数的因子个数。

本题就根据判断素数来找灵感,能被2整除的,count++,然后循环 n /= 2,这样就可以将所有的2除尽,使原数没有2的质因子~~

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNextInt()) {int n = in.nextInt();int count = 0;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) {while (n % i == 0) {n /= i;}count++;}}if (n != 1) {count++;}System.out.println(count);}}
}

 

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

相关文章

从根本上理解Synchronized的加锁过程

作为一个Java开发&#xff0c;对于Synchronized这个关键字并不会陌生&#xff0c;无论是并发编程&#xff0c;还是与面试官对线&#xff0c;Synchronized可以说是必不可少。 在JDK1.6之前&#xff0c;都认为Synchronized是一个非常笨重的锁&#xff0c;就是在之前的《谈谈Java…

linux下的权限管理

1.shell概念 当我们在进入正文前先给大家普及一些基础概念。 广义上来讲&#xff0c;linux 发行版 linux内核 外壳程序&#xff08;这个外壳程序就相当于 windows gui&#xff08;窗口图形&#xff09;&#xff0c;linux 常用的shell 是 bash&#xff09; 所以&#xff0c…

雪花算法使用以及优化问题 附代码

/*** 雪花算法生成分布式唯一ID*/ public class Snowflake {private long datacenterId; // 数据中心IDprivate long machineId; // 机器标识IDprivate long sequence; // 序列号private long lastStamp; // 上一次时间戳// 雪花算法参数private final static long datacenter…

《语文教学通讯》栏目 收稿范围

《语文教学通讯》创刊于1978年&#xff0c;是由山西师范大学主管&#xff0c;山西师大教育科技传媒集团主办的期刊。历年被人民大学书报资料中心转载、复印的篇幅数量均居同类报刊之首。国内刊号&#xff1a;CN 14-1017/G4&#xff0c;国际刊号&#xff1a;ISSN 1004-6097&…

Java中的集合框架有哪些类?

Java中的集合框架是一个用于存储和操作对象的集合类库&#xff0c;提供了一系列的接口和类&#xff0c;用于支持不同的集合类型。在Java中&#xff0c;集合框架主要由接口、实现类、算法和数组工具类等四个部分组成。 接口 Java中的集合框架提供了一系列接口&#xff0c;其中…

【笔试强训选择题】Day7.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录…

「神州数码DCN」SAVI在IPV6环境下的应用

前言 介绍 ISIS&#xff0c;中间系统到中间系统的网络协议&#xff0c;最初是OSI组织为了他的CLNP&#xff08;类似于TCP/IP中的IP网络&#xff09;而设计的动态路由协议&#xff0c;后IETF对其进行修改和填充&#xff0c;现可以在TCP/IP和OSI环境中使用&#xff0c;称为&…

程序员如何学好PHP?做好这五个方面就够了

今天我想和大家分享一下程序员的第一份工作对自己的意义以及影响。首先&#xff0c;我们都知道第一份工作很重要&#xff0c;因为它决定了你以后的职业生涯的方向。你的第一份工作做的什么方向&#xff0c;很可能就是你以后职业生涯中最主要的方向。对我个人而言&#xff0c;我…