Java—— 五道算法水题

第一题

 需求:

包装类:键盘录入一些1~100之间的整数,并添加到集合中。直到集合中所有数据和超过200为止

代码实现:

import java.util.ArrayList;
import java.util.Scanner;public class Test1 {public static void main(String[] args) {//键盘录入一些1~100之间的整数,并添加到集合中。//直到集合中所有数据和超过200为止//定义集合ArrayList<Integer> list = new ArrayList<>();//键盘录入Scanner sc = new Scanner(System.in);while (true) {String numStr = sc.nextLine();int num = Integer.parseInt(numStr);if (num < 1 || num > 100) {System.out.println("输入数字范围有误,请重新输入");continue;}list.add(num);//调用方法计算集合中所有数据和int sum = getSum(list);if (sum > 200) {break;}}for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i) + " ");}}//定义方法计算集合中所有数据和private static int getSum(ArrayList<Integer> list) {int sum = 0;for (int i = 0; i < list.size(); i++) {int num = list.get(i);sum = sum + num;}return sum;}
}

第二题

需求:

自己实现parselnt方法的效果,将字符串形式的数据转成整数。
要求:
字符串中只能是数字不能有其他字符
最少一位,最多10位
0不能开头

代码实现: 

import java.util.Scanner;public class Test2 {public static void main(String[] args) {//自己实现parselnt方法的效果,将字符串形式的数据转成整数。//要求://字符串中只能是数字不能有其他字符//最少一位,最多10位//0不能开头Scanner sc = new Scanner(System.in);String regex = "[1-9]\\d{0,9}";String str;while (true) {System.out.println("请输入字符串");str = sc.nextLine();//1234boolean flag = str.matches(regex);if (flag) {break;}System.out.println("字符串不符合要求");}int result = 0;for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);int num = c - '0';result = result * 10 + num;}System.out.println(result);//1234System.out.println(result + 1);//1235}
}

第三题

需求:

定义一个方法实现toBinaryString方法的效果,将一个十进制整数转成字符串表示的二进制
除基取余法:
不断的除以基数(几进制,基数就是几)得到余数,
直到商为0,再将余数倒着拼起来即可。

代码实现:

public class Test3 {public static void main(String[] args) {//定义一个方法自己实现toBinaryString方法的效果,将一个十进制整数转成字符串表示的二进制//除基取余法//不断的除以基数(几进制,基数就是几)得到余数,//直到商为0,再将余数倒着拼起来即可。//自定义方法System.out.println(toBinaryString(123));//1111011//Integer中的方法System.out.println(Integer.toBinaryString(123));//1111011}public static String toBinaryString(int num) {//定义StringBuilder便于拼接StringBuilder sb = new StringBuilder();while (num != 0) {//得到余数int result = num % 2;//将余数倒着拼起来相当于每一个数都拼在前面sb.insert(0, result);//除以基数num = num / 2;}return sb.toString();}
}

第四题

需求:

请使用代码计算你出生到现在经历多少天,用JDK7和JDK8两种方式完成 

代码实现:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Date;public class Test4 {public static void main(String[] args) throws ParseException {//请使用代码计算你出生到现在经历多少天,用JDK7和JDK8两种方式完成//JDK7//利用字符串定义出生的日期String birthStr = "2000-3-5";//解析为日期对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date birth = sdf.parse(birthStr);//或得毫秒值long birthTime = birth.getTime();//获得现在时间Date now = new Date();long nowTime = now.getTime();//相减long time = nowTime - birthTime;System.out.println(time / 1000 / 60 / 60 / 24);//9183//JDK8//利用工具类ChronoUnit//获得现在时间LocalDate ld1 = LocalDate.now();//获得出生的时间LocalDate ld2 = LocalDate.of(2000, 3, 5);long result = ChronoUnit.DAYS.between(ld2, ld1);System.out.println(result);//9183}
}

第五题

需求:

判断任意的一个年份是闰年还是平年
要求:用JDK7和JDK8两种方式判断
提示:二月有29天是闰年

代码实现:

import java.time.LocalDate;
import java.util.Calendar;public class Test5 {public static void main(String[] args) {//判断任意的一个年份是闰年还是平年//要求:用JDK7和JDK8两种方式判断//提示://二月有29天是闰年//思路://让3月1日减一天,看是否是29号//JDK7Calendar c = Calendar.getInstance();//设置时间为某年3月1日/*c.set(Calendar.YEAR,2000);c.set(Calendar.MONTH,2);//Calendar月份的范围为0-11c.set(Calendar.DAY_OF_MONTH,1);*/c.set(2000, 2, 1);//将其减1天c.add(Calendar.DAY_OF_MONTH, -1);//判断是否是29号int day = c.get(Calendar.DAY_OF_MONTH);if (day == 29) {System.out.println(c.get(Calendar.YEAR) + "是闰年");//2000是闰年}//JDK8//设置时间为某年3月1日LocalDate ld1 = LocalDate.of(2000, 3, 1);//LocalDate月份的范围为1-12//将其减1天LocalDate ld2 = ld1.minusDays(1);//判断是否是29号int dayOfMonth = ld2.getDayOfMonth();if (dayOfMonth == 29) {System.out.println(ld2.getYear() + "是闰年");//2000是闰年}//JDK8有判断是否是闰年的方法//true:是闰年,false:不是闰年boolean flag = ld1.isLeapYear();if (flag) {System.out.println(ld1.getYear() + "是闰年");//2000是闰年}}
}

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

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

相关文章

安全编排自动化与响应(SOAR):从事件响应到智能编排的技术实践

安全编排自动化与响应&#xff08;SOAR&#xff09;&#xff1a;从事件响应到智能编排的技术实践 在网络安全威胁复杂度指数级增长的今天&#xff0c;人工处理安全事件的效率已难以应对高频攻击&#xff08;如日均万级的恶意IP扫描&#xff09;。安全编排自动化与响应&#xf…

网络原理 - 9

目录 数据链路层 以太网 以太网帧格式 MAC 地址 DNS&#xff08;Domain Name System&#xff09; 完&#xff01; 数据链路层 这里的内容也是简单了解&#xff0c;除非是做交换机开发&#xff0c;一般程序员不需要涉及~~ 以太网 ”以太网“不是一种具体的网络&#xf…

unity bug

发现一个奇怪的bug&#xff0c;就是某些unity版本打包apk时候不允许StreamingAssets里面有中文文件或者中文路径。比如下图这面这俩都是不行的。 解决方案&#xff1a;中文改为英文即可。 一般报错信息如下&#xff1a; > Configure project :launcher WARNING:The option s…

【Linux网络】打造初级网络计算器 - 从协议设计到服务实现

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

计算机视觉——对比YOLOv12、YOLOv11、和基于Darknet的YOLOv7的微调对比

概述 目标检测领域取得了巨大进步&#xff0c;其中 YOLOv12、YOLOv11 和基于 Darknet 的 YOLOv7 在实时检测方面表现出色。尽管这些模型在通用目标检测数据集上表现卓越&#xff0c;但在 HRSC2016-MS&#xff08;高分辨率舰船数据集&#xff09; 上对 YOLOv12 进行微调时&…

‌MySQL 事务隔离级别详解

‌ 以下是 MySQL 支持的四种事务隔离级别及其特性&#xff0c;按并发安全性从低到高排列&#xff1a; ‌1. 读未提交 (Read Uncommitted)‌ ‌问题‌&#xff1a; ‌脏读 (Dirty Read)‌&#xff1a;事务可读取其他事务未提交的数据。‌不可重复读 (Non-repeatable Read)‌&am…

如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题

如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题 在现代软件开发过程中&#xff0c;开发人员通常使用集成开发环境&#xff08;IDE&#xff09;如IntelliJ IDEA、Visual Studio Code&#xff08;VSCode&#xff09;等进行Node.js项目开发…

2025最新Facefusion3.1.2使用Docker部署,保姆级教程,无需配置环境

Docker部署Facefusion 环境 windows10 Facefusion3.1.2 安装 拉取源代码 git clone https://github.com/facefusion/facefusion-docker.git 此处如果拉不下来&#xff0c;需要科学上网&#xff0c;不会的可以找我。 运行容器 将Dockerfile.cpu文件中的的From python:3.…

docker容器监控自动恢复

关于实现对docker容器监控以及自动恢复&#xff0c;这里介绍两种实现方案。 方案1&#xff1a; 实现思路&#xff1a; 找到&#xff08;根据正则表达式&#xff09;所有待监控的docker容器&#xff0c;此处筛选逻辑根据docker运行状态找到已停止&#xff08;Exit&#xff09;类…

HackMyVM - Chromee靶机

HackMyVM - chromee靶机https://mp.weixin.qq.com/s/hF09_24PRXpx_lmB6dzWVg

Cursor中调用本地大语言模型

引言 随着大语言模型(LLM)技术的快速发展&#xff0c;越来越多的开发者希望在本地环境中运行这些强大的AI模型&#xff0c;以获得更好的隐私保护、更低的延迟以及不依赖网络连接的使用体验。Cursor作为一款面向开发者的AI增强编辑器&#xff0c;提供了与本地大语言模型集成的功…

青少年CTF-贪吃蛇

题目描述&#xff1a; 进入赛题页面&#xff1a; 按F12&#xff0c;查看源代码&#xff0c; 可以看到是当分数大于或等于10000时&#xff0c;获得flag&#xff0c;值已经给出&#xff0c;直接引用就可以&#xff0c;check_score.php?score${score}&#xff0c;这里将${score}换…

亚马逊测评老砍单?了解过全新自养号系统吗?

以全球电商巨头亚马逊为例&#xff0c;其风控技术的进化堪称一部永不停歇的“升级史”。然而&#xff0c;令人遗憾的是&#xff0c;不少卖家和测评服务商却依旧沉浸在过去的“舒适区”&#xff0c;过度依赖指纹浏览器、luminati等传统技术手段。这些曾经行之有效的工具&#xf…

module.noParse(跳过指定文件的依赖解析)

1. 说明 module.noParse 是 Webpack 的一个配置项&#xff0c;用于跳过对指定模块的解析。通过忽略某些文件的依赖分析&#xff0c;可以提升构建速度&#xff0c;尤其适用于处理大型、独立的第三方库 2. 使用配置 webpakc.config.js const path require(path); module.exp…

什么是爬虫?——从技术原理到现实应用的全面解析 V

什么是爬虫?——从技术原理到现实应用的全面解析 V 二十一、云原生爬虫架构设计 21.1 无服务器爬虫(AWS Lambda) # lambda_function.py import boto3 import requests from bs4 import BeautifulSoups3 = boto3.client(s3)def lambda_handler(event, context):# 抓取目标…

Web渗透之系统入侵与提权维权

渗透测试步骤 信息收集 搜集一些IP地址以及对应的端口开放情况&#xff0c;看看是否有80、3306、22等等端口开放&#xff0c;以及操作系统和版本号&#xff0c;同时也要扫描可能存在的漏洞 漏洞利用 建立据点 漏洞利用成功后&#xff0c;通常会在目标机上获得一个webshell&…

【数论分块】数论分块算法模板及真题

1.数论分块的含义 数论分块算法&#xff0c;就是枚举出使得取整函数发生变化的地方。 例如&#xff0c;对表达式 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor ⌊in​⌋使用数论分块算法&#xff0c;就可以在 O ( n ) O(\sqrt n) O(n ​)的时间复杂度下枚举所有满足 ⌊ n i − 1 ⌋…

SpringBoot 常用注解通俗解释

SpringBoot 常用注解通俗解释 一、启动类相关 1. SpringBootApplication • 作用&#xff1a;这是SpringBoot项目的"总开关"&#xff0c;放在主类上 • 通俗理解&#xff1a;相当于对电脑说&#xff1a;"开机&#xff01;我要用SpringBoot了&#xff01;…

栈应用:括号匹配

1&#xff1a;普通字符串括号匹配 #include <iostream> #include <stack> #include <string> using namespace std; bool mat(char,char); int if_match(string); int main(){string a;cin>>a;cout<<if_match(a)<<endl;return 0; } bool m…

某东h5st_5.1(补环境)

JS逆向实战——某东h5st_5.1&#xff08;补环境&#xff09; 声明网站流程分析结果展示总结 声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无…