java算法汇总(蓝桥常用-->自总版)(更新中...)

news2025/1/13 19:57:30

这里写目录标题

  • 1.递归求n的阶乘
  • 2.互质
  • 3.例题:奇妙的数字
    • 两个数字拼接
    • String.toCharArray()方法
    • String.valueOf()方法
  • 4.例题:美丽的2
    • String.contains()方法
  • 5.ASCII码---a,A,0的转换
  • 6.String[] a---->求sum+=(a[p].charAt(q))-'0';
  • 7.复数
    • BigInteger 大整数类型
      • 本题用到的方法----value.Of() ; add() ; subtract()
    • 关于BigInteger初始化为null
    • compareTo()方法 : 返回一个int型数据(1 大于; 0 等于 ; -1 小于)
  • 8.二维数组按某一列排序
  • 参考文件

1.递归求n的阶乘

public class other_1 {
	public static long factorial(int n) {
		if(n==0) {
			return 1;
		}else {
			return n*factorial(n-1);
		}
	}
	public static void main(String[] args) {
		for(int i=1;i<=20;i++) {
			System.out.println(i+" "+factorial(i));
		}
	}
}

2.互质

  • 质数
    只能被自身和1整除的数为质数

  • 互质
    常用判断条件 : 最大公约数为1的两个数 互质

  • 求最大公约数

      假设有两个数A,B--->A=B*q+R
      则,我们要求的(A,B)的最大公约数 就变成了 求(B,R)的最大公约数,以此类推
    

在这里插入图片描述

3.例题:奇妙的数字

在这里插入图片描述



import java.util.ArrayList;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		for(int i=1;i<2145;i++) {
			int a=i*i;
			int b=i*i*i;
			String c=a+""+b;
			if(s1(c)) {
				System.out.println(i);
				break;
			}
		}

	}
	public static boolean s1(String c) {
		
		char[] x=c.toCharArray();
		Arrays.sort(x);
		c=String.valueOf(x);
		if(c.equals("0123456789")) {
			return true;
		}
		return false;
	}

}

两个数字拼接

	int a=2349;
	int b=69780;
	String c=a+""+b;
	sout(c);
	//输出结果 : 234969780

String.toCharArray()方法

  • 作用 : 将字符串(String) 转化为 字符数组
    (此题toCharArray()方法的作用是 后面需要对c进行排序,所以需要将c转化为数组形式)

      String s="729 384";
      char[] c=s.toCharArray();
      sout(c);
      //输出结果 : 729 384
    

String.valueOf()方法

  • 作用 : 将其他数据类型转换为String类型

      int a=74982;
      String s=String.valueOf(a);
      System.out.println("a的数据类型:"+getType(a));
      System.out.println("s的数据类型:"+s.getClass().getName());
      
      //对于一些基础数据类型,不能直接获取它的数据类型,可用 以下方法
      public static String getType(Object o) {
      	//通过getClass() ---> java的反射机制 获取数据类型
      	return o.getClass().getName();
      }
      
      //输出结果 : 
      a的数据类型:java.lang.Integer
      s的数据类型:java.lang.String
    

4.例题:美丽的2

在这里插入图片描述

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int count=0;
        for(int i=1;i<=2020;i++){
          String s=i+"";
          if(s.contains("2")){
            count++;
          }
        }
        System.out.println(count);
        scan.close();
    }
}

String.contains()方法

  • 作用 : 判断该String对象中是否包含参数中的字符串

      String s="hello world";
      Boolean  b1=s.contains("ell");		//type=true
      Boolean b2=s.contains("world");		//type=false
    

5.ASCII码—a,A,0的转换

a : 97
A : 65
0 : 48

public class Main{
	public static void main(String[] args) {
//		强制转换	
		System.out.println((char)65);	//A
		System.out.println((char)97);	//a
		System.out.println((int)'a');	//97
		System.out.println((int)'A');	//65
		
//		到 '0'--->0的ASCII码是48
		System.out.println('A'-'0');	//65-48=17
		System.out.println('a'-'0');	//97-48=49
		
	}
}

6.String[] a---->求sum+=(a[p].charAt(q))-‘0’;

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
//        int[][] a = new int[20+2][20+2];
//        for(int i=0;i<20;i++){
//          for(int j=0;j<20;j++){
//            a[i][j] = scan.nextInt();
//          }
//        }
        String[] a = {             
                "69859241839387868941",
                "17615876963131759284",
                "37347348326627483485",
                "53671256556167864743",
                "16121686927432329479",
                "13547413349962773447",
                "27979945929848824687",
                "53776983346838791379",
                "56493421365365717745",
                "21924379293872611382",
                "93919353216243561277",
                "54296144763969257788",
                "96233972513794732933",
                "81443494533129939975",
                "61171882988877593499",
                "61216868895721348522",
                "55485345959294726896",
                "32124963318242554922",
                "13593647191934272696",
                "56436895944919899246"};
        int count = 0;
        for(int i=0;i<=15;i++){
          for(int j=0;j<=15;j++){
            int sum = 0;
            for(int p=i;p<i+5;p++){
              for(int q=j;q<j+5;q++){
            	  sum+=(a[p].charAt(q))-'0';
                
              }
            }
            count = Math.max(count,sum);
          }
        }
        System.out.print(count);
        scan.close();
    }
}

7.复数

a+bi
a是实部,b是虚部
在坐标轴上--->相当于a是x,b是y
  • 加减法
    实部+/-实部 ; 虚部+/-虚部

      (a+bi)+(c+di) = (a+c)+(b+d)i
    
  • 乘除法
    类似于多项式,只不过计算出的 i^2=-1

      (a+bi)(c+di)=(ac-bd)+(bc+ad)i
      
      ac+adi+bci+bdi2,因为i2=-1,所以结果是(ac-bd)+(bc+ad)i
    

BigInteger 大整数类型

常用方法 : 赋值,加减乘除

本题用到的方法----value.Of() ; add() ; subtract()

  • value.Of(参数) : 将 参数 转换成指定的数据类型
BigInteger b = BigInteger.valueOf(283);
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int a = 42;
        BigInteger f = BigInteger.valueOf(a);
        System.out.println("f:"+f+" "+f.getClass().toString()); //output : f:42 class java.math.BigInteger
//        BigInteger t = 23480;	//不能直接这么写(jdk1.8不支持)
        scan.close();
    }
}
  • add()方法 : 大整数加法
	BigInteger a = new BigInteger("6");
	BigInteger b = new BigInteger("3");
	System.out.print("a+b="+a.add(b));//output : a+b=9
  • subtract()方法 : 大整数减法
	BigInteger c = new BigInteger("32");
	BigInteger d = new BigInteger("20");
	System.out.print("c-d="+c.subtract(d));//output : c-d=12
  • multiply()方法 : 乘法 (用法同上)
  • divide()方法 : 除法 (用法同上)

关于BigInteger初始化为null

BigInteger是Java中的一个类,用于处理大整数运算。在Java中,BigInteger的初始值是null,而不是0。当你创建一个BigInteger对象时,如果没有显式地给它赋初值,它将被默认设置为null。

这是因为BigInteger是一个引用类型,而不是基本数据类型。引用类型的默认值是null,表示该引用没有指向任何对象。

如果你想将BigInteger的初始值设置为0,你可以使用BigInteger的构造函数来实现:

BigInteger num = new BigInteger(“0”);

这样就可以将num的初始值设置为0了

compareTo()方法 : 返回一个int型数据(1 大于; 0 等于 ; -1 小于)

BigInteger.ZERO //0
BigInteger.ONE	//1
BigInteger.TEN	//10
int x = bb.compareTo(BigInteger.ZERO);
//如果 bb > 0 --->x = 1
//如果 bb = 0 --->x = 0
//如果 bb < 0 --->x = -1

8.二维数组按某一列排序

按第一列排序(Lambada表达式写法–常用) :

Arrays.sort(arrays,(o1,o2)->{
	if(o1[0] == o2[0]){	//如果第一列相同,则按照第二列排序
		return o1[1]-o2[1];
	}
	return o1[0] - o2[0];	//按照第一列排序(升序)
//	return o2[0] - o1[0];	//降序
});

如果不需要上面代码的if条件判断 , 更简洁的写法 :

Arrays.sort(arrays,Comparator.comparingInt(o->o[0]));

参考文件

  • java 二维数组按某一列排序
  • java中BigInteger用法的详解

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

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

相关文章

【SSH配置公钥私钥免密登录】

SSH配置公钥私钥免密登录 SSH的安全机制一、修改远程主机ssh设置二、在windows客户端生成公钥私钥文件三、将客户端公钥追加到远程主机 .ssh/authorized_keys中参考链接 SSH的安全机制 SSH之所以能够保证安全&#xff0c;原因在于它采用了非对称加密技术(RSA)加密了所有传输的…

28---Nand Flash电路设计

视频链接 Nand flash电路设计01_哔哩哔哩_bilibili NAND FLASH电路设计 1、NAND FLASH介绍 Nand-flash内存是flash内存的一种&#xff0c;其内部采用非线性宏单元模式&#xff0c;为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash具有容量较大&#xff0c;改写…

【GPT5】牛!用ChatGPT搞科研,1天顶替博士辛苦研究3个月......

一、GPT的意义 随着人工智能技术的飞速发展&#xff0c;特别是ChatGPT、GPT-4等大型语言模型以及Midjourney、StableDiffusion等AI绘图工具的问世&#xff0c;我们已经进入了所谓的AI 2.0时代。这一时代的标志性特征是AI技术不仅在复杂性和功能性上取得了巨大进步&#xff0c;…

【PyQt】18 -菜单等顶层操作

顶层界面的使用 前言一、菜单栏1.1 代码1.2 运行结果 二、工具栏2.1 代码几种显示方法 2.2 运行结果 三、状态栏3.1 代码3.2 运行结果 总结 前言 1、介绍顶层菜单栏目的使用&#xff0c;但没有陆续绑定槽函数。 2、工具栏 3、状态栏 一、菜单栏 1.1 代码 #Author &#xff1a…

华为防火墙二层墙(VAN/SVI/单臂路由)

二层墙只能做地址池形式的NAT。 交换机安全策略防火墙二层墙 路由器安全策略防火墙三层墙 交换机的光口是不能直接插线的&#xff0c;光模块&#xff0c;包括进和出 长距离&#xff1a;单模 短距离&#xff1a;多模 防火墙自身的ping流量需要单独配置

畅捷通T+ Ufida.T.DI.UIP.RRA.RRATableController 远程命令执行漏洞

一、漏洞信息 漏洞名称:畅捷通T+ Ufida.T.DI.UIP.RRA.RRATableController 远程命令执行漏洞 漏洞类别:远程命令执行漏洞 风险等级:高危 二、漏洞描述 畅捷通TPlus适用于异地多组织、多机构对企业财务汇总的管理需求;全面支持企业对远程仓库、异地办事处的管理需求;全…

期货开户交易领域的认知偏差

在交易领域&#xff0c;目前存在以下几种认知偏差问题&#xff0c;看看你中了其中几条&#xff1a; 1、认为不亏钱比赚钱更为重要 对于绝大多数人来说&#xff0c;盈利要比亏损更受欢迎&#xff0c;从纯粹的理论上来说&#xff0c;每赚到100元和亏了100元是相同的&#xff0c…

Cadence——导出BOM清单

首先使用Allegro PCB Designer打开xxx .brd PCB制板文件 如下图&#xff0c;然后点击Tools–>Quick Reports&#xff0c;再选择Bill of Material Report或者Bill of Material Report(Condensed)&#xff0c;这两个的区别就是上面的导出的BOM物料清单中相同的器件是不会合并的…

VUE之首次加载项目缓慢

最近公司有个大型的项目&#xff0c;使用vue2开发的&#xff0c;但是最终开发完成之后&#xff0c;项目发布到线上&#xff0c;首次加载项目特别缓慢&#xff0c;有时候至少三十秒才能加载完成&#xff0c;加载太慢了&#xff0c;太影响用户体验了&#xff0c;最近研究了一下优…

Server-u配置FTP 多用户访问多目录图解

目录 一、 本案例目录环境 二、实现目标 三、实现方法 1、新建ftp域名 2、目录设置 3、用户创建 上篇文章【Server-U搭建FTP共享文件】很多朋友都私信我,希望深入了解Server-U的多用户设置,因此对多用户的访问设置进行了如下的总结。 一、

奥比中光深度相机(一):环境配置

文章目录 奥比中光深度相机&#xff08;一&#xff09;&#xff1a;环境配置简介电脑环境SDK配置步骤安装环境依赖填写路径&#xff0c;点击Configure选择Visual studio点击Generate完成基于Python的SDK配置方法一&#xff1a;使用Cmake直接打开方法二&#xff1a;通过源文件打…

2015年认证杯SPSSPRO杯数学建模A题(第二阶段)绳结全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 A题 绳结 原题再现&#xff1a; 给绳索打结是人们在日常生活中常用的技能。对登山、航海、垂钓、野外生存等专门用途&#xff0c;结绳更是必不可少的技能之一。针对不同用途&#xff0c;有多种绳结的编制方法。最简单的绳结&#xff0c;有时称…

【数据分享】1929-2023年全球站点的逐月平均海平面压力(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…

使用rp2040驱动ov7670摄像头(不带FIFO)使用c/c++语言实现

RP2040是一款由树莓派公司设计的32位双核ARM Cortex-M0微控制器芯片&#xff0c;于2021年1月发布&#xff0c;作为树莓派Pico开发板的核心部件。它具备许多引人注目的特性&#xff0c;为嵌入式系统开发提供了强大的支持。 RP2040拥有出色的性能和灵活的功能&#xff0c;其内核…

Bean Validation注解实现数据校验

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

MQ消息队列从入门到精通速成

文章目录 1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比&#xff1a; 2.快速入门2.1.安装RabbitMQ2.2.RabbitMQ消息模型2.3.导入Demo工程2.4.入门案例2.4.1.publisher实现2.4.2.consumer实现 2.5.总结 3.SpringAMQP3.1.Basic Queue 简单队列模型3.1.1.…

鸿蒙Harmony跨模块交互

1. 模块分类介绍 鸿蒙系统的模块一共分为四种&#xff0c;包括HAP两种和共享包两种 HAP&#xff08;Harmony Ability Package&#xff09; Entry&#xff1a;项目的入口模块&#xff0c;每个项目都有且只有一个。feature&#xff1a;项目的功能模块&#xff0c;内部模式和En…

龙蜥 Anolis OS 7.9 一键安装 Oracle 11GR2(231017)单机版

前言 Oracle 一键安装脚本&#xff0c;演示 龙蜥 Anolis OS 7.9 一键安装 Oracle 11GR2&#xff08;231017&#xff09;单机版过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址…

【MySQL】10. 复合查询(重点)

复合查询&#xff08;重点&#xff09; 前面我们讲解的mysql表的查询都是对一张表进行查询&#xff0c;在实际开发中这远远不够。 1. 基本查询回顾 数据还是使用之前的雇员信息表 在标题7的位置&#xff01; mysql> select * from emp where sal > 500 or job MANAG…

python知识点总结(九)

python知识点总结九 1、TCP中socket的实现代码实现TCP协议a、服务端b、客户端&#xff1a; 2、写装饰器&#xff0c;限制函数被执行的频率&#xff0c;如10秒一次3、请实现一个装饰器&#xff0c;通过一次调用函数重复执行5次4、写一个登录装饰器对一下函数进行装饰&#xff0c…