当前位置: 首页 > news >正文

Java算法解题小记

Java算法解题速记

  • 1. 返回两个整数中的最小值
  • 2. 返回三个整数中的最小值
  • 3. 将小数以百分号的形式输出
  • 4. 检查字符串是否为纯数字
  • 5. 检查某个变量是否为a-z或A-Z的字符
  • 6. 判断一个数是否为素数
  • 7. 求两个数的最大公约数和最小公倍数
  • 8. !scanner.hasNext(".")的注意点
  • 9. 比较字符串是否相等时忽略大小写

1. 返回两个整数中的最小值

int min2(int a, int b){
    return a < b ? a : b;
	}

2. 返回三个整数中的最小值

int min3(int a, int b, int c){
        int min2;
        return c < (min2=a < b ? a : b) ? a : min2;
    }

3. 将小数以百分号的形式输出

//保留两位小数并自动进行四舍五入操作
DecimalFormat num = new DecimalFormat(".00%");
double a = 0.127863;
System.out.println(num.format(a));

输出结果:

12.79%

4. 检查字符串是否为纯数字

String a = "314321";
String b = "X987";
System.out.println(a.matches("[0-9]+"));
//[0-9]相当于\d,因此上式也可以写为:"\\d+"
System.out.println(b.matches("[0-9]+"));

输出结果:

true
false

5. 检查某个变量是否为a-z或A-Z的字符

String str = "x";
String str1 = "2";
System.out.println(str.matches("[A-z]"));
System.out.println(str1.matches("[A-z]"));

输出结果:

true
false

6. 判断一个数是否为素数

判断整数n是否为素数时只需循环到sqrt(n)即可,因为n必有一个小于或等于其平方根的因数,那么验证素数时就只需要验证到其平方根即可

7. 求两个数的最大公约数和最小公倍数

使用辗转相除法求两个数的最大公约数:

public static int getGCD(int a, int b) {
     //确保a比b大
     if (a < b){
         int temp = a;
         a = b;
         b = temp;
     }
     if (a % b == 0) {
         return b;
     }else {
         //递归运算
         return getGCD(b, a % b);
     }
}

两个数的最小公倍数等于两数的乘积除以两数的最大公约数:

int a = 4, b = 6;
 System.out.println("最小公倍数:"+a*b/getGCD(a,b));

8. !scanner.hasNext(".")的注意点

有题目要求以一个英文句点".“为标志结束输入的时候,不能使用 while (!scanner.hasNext(”."))来进行输入的判断,因为正则表达式中的"."表示用于查找单个字符(除了换行和行结束符),否则当输入单个字符时while的条件仍然不成立从而导致结果错误。可使用如下方式代替:

 while (true){
   temp = scanner.next();
   if (!".".equals(temp))
       arr.add(temp);
   else
      break;
}

9. 比较字符串是否相等时忽略大小写

比较字符串是否相等时忽略大小写可使用equalsIgnoreCase方法:

String str1 = "HeLlo";
System.out.println(str1.equalsIgnoreCase("hello"));

输出结果:

true

相关文章:

  • java-php-python-springboot小说网站计算机毕业设计
  • 医药研发团队怎么利用RPA智能员工降低运营成本
  • 计算机学院2022级新生周赛(一)题解
  • 6191. 好路径的数目 并查集
  • HTML5 web
  • MySql5.1+版本主从同步配置(bin_log)模式
  • 什么是线程的拒绝策略核心线程数打满后就直接创建新线程吗
  • leetcode: 312. 戳气球
  • 通信原理学习笔记6-1:数字解调——基础解调链路、匹配滤波器和AWGN信道最佳接收机
  • 就是因为不能接受一些观念,所以阻碍了你真正赚到钱
  • 根据E-R图设计数据库表
  • 关于python中有关一个子类继承多个父类的实例属性绑定问题
  • C++ 观察者模式
  • nodejs运行环境配置并使用puppeteer实现后台截图
  • ES6函数的拓展形参和拓展运算符
  • 深入了解以太坊
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2017年终总结、随想
  • Babel配置的不完全指南
  • CSS中外联样式表代表的含义
  • JSONP原理
  • rabbitmq延迟消息示例
  • Vue2.x学习三:事件处理生命周期钩子
  • win10下安装mysql5.7
  • windows下使用nginx调试简介
  • 不上全站https的网站你们就等着被恶心死吧
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 如何设计一个微型分布式架构?
  • 入手阿里云新服务器的部署NODE
  • 数据结构java版之冒泡排序及优化
  • 鱼骨图 - 如何绘制?
  • 第二十章:异步和文件I/O.(二十三)
  • $.proxy和$.extend
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (规划)24届春招和25届暑假实习路线准备规划
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • ../depcomp: line 571: exec: g++: not found
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET : 在VS2008中计算代码度量值
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET 中 GetProcess 相关方法的性能
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NetCore项目nginx发布
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .sh 的运行
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [].slice.call()将类数组转化为真正的数组
  • [4.9福建四校联考]