首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【算法题分享】小白必备的算法基础题

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

作者头像
学无止尽5
发布2025-05-28 08:41:43
发布2025-05-28 08:41:43
2350
举报

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

1:输入宽度

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-24
 * Time:17:29
 */
public class Main10 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(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列,右对齐。

详解代码

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-24
 * Time:17:44
 */
public class Main11 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String c=sc.nextLine();
        System.out.println(String.format("%6s",c.substring(0,3)));
    }
}

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


3:%f格式符

输入一个实数,第一次按实型输出;第二次保留2位小数输出;第三次保留3位小数但最小列宽8列输出,空格分隔。

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-24
 * Time:17:57
 */
public class Main12 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(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的小数、指数形式。

代码详解:

代码语言:javascript
复制
package demo5_2;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-24
 * Time:23:30
 */
public class Main13 {
    public static void main(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。

代码详解:

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-24
 * Time:23:38
 */
public class Main {
    public static void main(String[] args) {
        //输出202、117、70、130的十进制、八进制、十六进制数据形式,结果为0ddddd或0Xddddd
        int 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是一个十进制数的百位、十位、个位,求这个十进制数。

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-25
 * Time:23:12
 */
public class Main15 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String c=sc.nextLine().replace(" ","");
        System.out.println(Integer.valueOf(c));
        sc.close();
    }
}

7:整数逆序

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

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-25
 * Time:23:22
 */
public class Main16 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //方法一:
//        int a=sc.nextInt();
//        int b=a%10;
//        int c=a/10;
//        System.out.print(b);
//        System.out.print(c);

        //---------------------方法二---------------
        StringBuilder stringBuilder=new StringBuilder();
        String str=sc.next();
        stringBuilder.append(str).reverse();
        System.out.println(stringBuilder);
    }
}

8:多项式计算

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-26
 * Time:21:07
 */
public class Main17 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(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之和的立方。不考虑溢出等特殊情况。

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-26
 * Time:21:19
 */
public class Main18 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();
        int y=sc.nextInt();
        System.out.println((x+y)*(x+y)*(x+y));
    }
}

10:绝对值

输入数字a并计算a的绝对值。不考虑不合理的输入或是溢出等特殊情况。

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-26
 * Time:21:23
 */
public class Main19 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        double a=sc.nextDouble();
        System.out.println(String.format("%.6f",Math.abs(a)));
    }
}

11:求圆面积和周长

请编写一个简单程序,输入半径,输出圆面积和周长。(PI是3.1415926)

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

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

12:求矩形的面积和周长

请编写一个简单程序,输入矩形的长度和宽度,输出矩形的面积和周长。

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-26
 * Time:21:42
 */
public class Main21 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        double x=sc.nextDouble();
        double y=sc.nextDouble();
        double Area=x*y;
        double Perimeter=2*(x+y);
        System.out.println("Area"+"="+String.format("%.6f",Area));
        System.out.println("Perimeter"+"="+String.format("%.6f",Perimeter));
    }
}

13:椭圆计算

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

代码详解:

代码语言:javascript
复制
package demo5_2;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:Lenovo
 * Date:2025-05-26
 * Time:21:48
 */
public class Main22 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        double a=sc.nextDouble();
        double b=sc.nextDouble();
        double PI=3.1415926;
        double Area=PI*a*b;
        System.out.println("Area"+" "+"="+" "+String.format("%.6f",Area));
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:输入宽度
  • 2:%s格式符
  • 3:%f格式符
  • 4:小数、指数
  • 5:八、十六进制
  • 6:合并
  • 7:整数逆序
  • 8:多项式计算
  • 9:和的立方
  • 10:绝对值
  • 11:求圆面积和周长
  • 12:求矩形的面积和周长
  • 13:椭圆计算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档