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.pswp.cn/pingmian/78328.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78328.shtml
英文地址,請注明出處:http://en.pswp.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;否則由此產生的一切后果均與作者無…