【算法题分享】小白必备的算法基础题

【算法题分享】小白必备的算法基础题
在这里插入图片描述

我的个人主页我的专栏:人工智能领域、java-数据结构、Javase、C语言,MySQL,希望能帮助到大家!!!点赞👍收藏❤

在这里插入图片描述


在这里插入图片描述
引言:当你作为一个初学Java算法题的小白,可以点进来看看我这些算法基础题,能够很好的帮助你打好算法基本功。打好基础,才能更上一层楼。速速开始学起这些算法题吧!

1:输入宽度

在这里插入图片描述


代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-24 * Time:17:29 */publicclassMain10{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);String all=sc.next();System.out.println(String.format("%d %d %d",Integer.parseInt(all.substring(0,3)),Integer.parseInt(all.substring(3,6)),Integer.parseInt(all.substring(6,9)))); sc.close();}}

2:%s格式符

输入字符串,然后输出前3个字符,要求占6列,右对齐。
在这里插入图片描述


详解代码

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-24 * Time:17:44 */publicclassMain11{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);String c=sc.nextLine();System.out.println(String.format("%6s",c.substring(0,3)));}}

注意:这里使用nextLine(),next()遇到空格或者换行符就会停止;nextLine()遇到换行符才会停止。


3:%f格式符

输入一个实数,第一次按实型输出;第二次保留2位小数输出;第三次保留3位小数但最小列宽8列输出,空格分隔。
在这里插入图片描述


代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-24 * Time:17:57 */publicclassMain12{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);double a=sc.nextDouble();System.out.println(String.format("%f",a)+" "+String.format("%.2f",a)+" "+String.format("%8.3f",a));}}

4:小数、指数

输出3.1415926、12345678.123456789的小数、指数形式。
在这里插入图片描述


代码详解:

packagedemo5_2;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-24 * Time:23:30 */publicclassMain13{publicstaticvoidmain(String[] args){//小数、指数double n=3.1415926;double m=12345678.123456789;System.out.printf("%.6f %.6fe+000\n",n,n);System.out.printf("%.6f %.6fe+007",m,m/10000000);}}

5:八、十六进制

输出202、117、70、130的十进制、八进制、十六进制数据形式,结果为0ddddd或0Xddddd。
在这里插入图片描述

代码详解:

/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-24 * Time:23:38 */publicclassMain{publicstaticvoidmain(String[] args){//输出202、117、70、130的十进制、八进制、十六进制数据形式,结果为0ddddd或0Xdddddint a=202,b=117,c=70,d=130;System.out.printf("%d 0%o 0X%X\n",a,a,a);System.out.printf("%d 0%o 0X%X\n",b,b,b);System.out.printf("%d 0%o 0X%X\n",c,c,c);System.out.printf("%d 0%o 0X%X\n",d,d,d);}}

这里我们的八进制和十六进制有输出要求,所以我们在%o前面加上0,在%X前面加上0X。

6:合并

已知a、b、c是一个十进制数的百位、十位、个位,求这个十进制数。
在这里插入图片描述


代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-25 * Time:23:12 */publicclassMain15{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);String c=sc.nextLine().replace(" ","");System.out.println(Integer.valueOf(c)); sc.close();}}

7:整数逆序

编写一个程序,要求输入一个两位数的数字,然后逆序输出数字。不考虑不合理的输入或是溢出等特殊情况。
在这里插入图片描述

代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-25 * Time:23:22 */publicclassMain16{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);//方法一:// int a=sc.nextInt();// int b=a%10;// int c=a/10;// System.out.print(b);// System.out.print(c);//---------------------方法二---------------StringBuilder stringBuilder=newStringBuilder();String str=sc.next(); stringBuilder.append(str).reverse();System.out.println(stringBuilder);}}

8:多项式计算

在这里插入图片描述


代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-26 * Time:21:07 */publicclassMain17{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);int x=sc.nextInt();System.out.println((int)(Math.pow(x,6)+3*Math.pow(x,4)-2*Math.pow(x,5)-5*Math.pow(x,2)+6*x+7));}}
这使用了Math.pow()方法他是double类型,所以在输出的时候需要强转成int类型

9:和的立方

输入为整数x,y,求x、y之和的立方。不考虑溢出等特殊情况。
在这里插入图片描述

代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-26 * Time:21:19 */publicclassMain18{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);int x=sc.nextInt();int y=sc.nextInt();System.out.println((x+y)*(x+y)*(x+y));}}

10:绝对值

输入数字a并计算a的绝对值。不考虑不合理的输入或是溢出等特殊情况。
在这里插入图片描述

代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-26 * Time:21:23 */publicclassMain19{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);double a=sc.nextDouble();System.out.println(String.format("%.6f",Math.abs(a)));}}

11:求圆面积和周长

请编写一个简单程序,输入半径,输出圆面积和周长。(PI是3.1415926)
在这里插入图片描述


代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-26 * Time:21:27 */publicclassMain20{publicstaticvoidmain(String[] args){//请编写一个简单程序,输入半径,输出圆面积和周长。(PI是3.1415926)Scanner sc=newScanner(System.in);double r=sc.nextDouble();doublePI=3.1415926;doubleCircumference=2*PI*r;doubleArea=PI*r*r;System.out.println("Area"+"="+String.format("%.6f",Area));System.out.println("Circumference"+"="+String.format("%.6f",Circumference));}}

12:求矩形的面积和周长

请编写一个简单程序,输入矩形的长度和宽度,输出矩形的面积和周长。
在这里插入图片描述

代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-26 * Time:21:42 */publicclassMain21{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);double x=sc.nextDouble();double y=sc.nextDouble();doubleArea=x*y;doublePerimeter=2*(x+y);System.out.println("Area"+"="+String.format("%.6f",Area));System.out.println("Perimeter"+"="+String.format("%.6f",Perimeter));}}

13:椭圆计算

请编写一个简单程序,输入长半轴和短半轴长度,计算输出椭圆的面积。(PI是3.1415926)
在这里插入图片描述

代码详解:

packagedemo5_2;importjava.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-05-26 * Time:21:48 */publicclassMain22{publicstaticvoidmain(String[] args){Scanner sc=newScanner(System.in);double a=sc.nextDouble();double b=sc.nextDouble();doublePI=3.1415926;doubleArea=PI*a*b;System.out.println("Area"+" "+"="+" "+String.format("%.6f",Area));}}

今日的Java算法基础题就分享到这里了,我们下篇再见;🫰🫰🫰

Read more

哈希表的介绍和使用

哈希表的介绍和使用

一.哈希表的概念   哈希又称散列,本质是通过一种键值对存储的高校组织方式。通过一个哈希函数,将数据的关键字直接映射到存储的数据中,实现快速的定位。   就像在图书馆中可以根据图书的编号来快速查找图书的位置。 二.直接定址法   直接借用关键字作为存储位置的下标, class Solution { public:     int first(string s) {         int count[26] = { 0 };         for (auto e : s) {             count[e - 'a']++;         }         for (size_t i = 0; i < s.size(); i++) {             if (count[s[i] - 'a'

By Ne0inhk
【强化学习】双延迟深度确定性策略梯度算法(TD3)详解

【强化学习】双延迟深度确定性策略梯度算法(TD3)详解

📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在👉强化学习专栏:        【强化学习】- 【单智能体强化学习】(11)---《双延迟深度确定性策略梯度算法(TD3)详解》 双延迟深度确定性策略梯度算法(TD3)详解 目录 一、TD3算法的背景 二、TD3的背景 1.TD3的理论背景 2.DDPG的局限性 三、TD3算法的核心思想 1.双Critic网络(Twin Critics) 2.延迟更新(Delayed Policy Updates) 3.目标策略平滑(Target Policy Smoothing) 四、TD3算法详细讲解 1.

By Ne0inhk

揭秘斯大林排序:这个O(n)算法为何让程序员又爱又恨?

揭秘斯大林排序:这个O(n)算法为何让程序员又爱又恨? 【免费下载链接】stalin-sortAdd a stalin sort algorithm in any language you like ❣️ if you like give us a ⭐️ 项目地址: https://gitcode.com/gh_mirrors/st/stalin-sort 斯大林排序是一种独特的排序算法,以其惊人的O(n)时间复杂度和有趣的实现方式在编程社区中广受欢迎。这种算法通过"剔除"不按顺序的元素来达到排序目的,让初学者能够轻松理解排序算法的本质。 算法魅力:当排序遇上历史趣味 斯大林排序的魅力在于它将复杂的技术概念用简单直观的方式呈现出来。想象一下,你正在整理书架上的书籍,发现有一本书放错了位置,与其费力调整所有书籍,不如直接移除这本不合适的书——这就是斯大林排序的核心思想。 核心机制:三步掌握排序精髓

By Ne0inhk
动态规划 路径类 DP 入门:3 道经典例题(最小路径和 + 迷雾森林 + 过河卒)全解析

动态规划 路径类 DP 入门:3 道经典例题(最小路径和 + 迷雾森林 + 过河卒)全解析

文章目录 * 矩阵的最小路径和 * 迷雾森林 * 过河卒 路径类 dp 是线性 dp 的⼀种,它是在⼀个 n × m 的矩阵中设置⼀个⾏⾛规则,研究从起点⾛到终点的 ⽅案数、最⼩路径和或者最⼤路径和等等的问题。 ⼊⻔阶段的《数字三⻆形》其实就是路径类 dp。 矩阵的最小路径和 题目描述 题目解析 1、状态表示 dp[i][j]表示从[1 1]格子走到[i j]格子时,所有方案下的最小路径和。 2、状态转移方程 我们还是以最后一步来推导状态转移方程,走到最后一个格子dp[n][m]

By Ne0inhk