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

技术树基础——16排它平方数(Bigdecimal,int,string,数组的转换)

题目:

03879 * 203879 = 41566646641

这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。

具有这样特点的6位数还有一个,请你找出它!

再归纳一下筛选要求:

  1. 6位正整数

  1. 每个数位上的数字不同

  1. 其平方数的每个数位不含原数字的任何组成数位

分析:

仔细分析题目,我们得知两个点,

1,这个六位数的每一位数都不一样

2,这个六位数的平方的每位数字跟六位数的每位数字都不一样

那么我们就可以建一个遍历最小六位数到最大六位数的循环,建两个嵌套的if,第一个if用来判断1第二个if用来判断2。

第一个if需要把int转数组并赋值,然后进行循环比较如果没有相等的直接进入第二个if

第二个if参考值一个是六位数,一个是六位数的平方。

六位数的平方先转为字符串,然后建一个数组并遍历赋值,六位数也是转为字符串,然后建一个数组并遍历赋值。两个数组出来了,然后两个嵌套循环进行比对

解析:

注意:因为六位数平方很大,我们需要建Bigdecimal来表示数字

package 刷提210;import java.math.BigDecimal;public class 排他平方数 {public static void main(String[] args) {for (int i = 100000; i < 1000000; i++) {if (!panduan(i)) {//第一个判断,判断在所有可能中,自身所有的位数不重复BigDecimal six = new BigDecimal(i);//表示六位数String six2 = six.multiply(six).toString();//表示六位数的平方if (!panduan2(six2, six)) {//第二个判断,满足第一个判断的情况,六位数跟他的平方没有重复的System.out.println(six);}}}}public static boolean panduan(int num) {int[] store = new int[6];//长度为6数组String midStr = String.valueOf(num);//Int转为stringfor (int i = 0; i < midStr.length(); i++) {//把字符串遍历到数组里store[i] = midStr.charAt(i);}for (int i = 0; i < store.length; i++) {//两个循环用来判断自身有没有重复数值for (int j = i+1; j < store.length; j++) {if (store[i] == store[j]) {return true;}}}return false;}public static boolean panduan2(String str, BigDecimal num) {int[] PingStore = new int[str.length()];for (int i = 0; i < str.length(); i++) {//把string建数组并遍历赋值PingStore[i] = str.charAt(i);}String numStr = num.toString();//把BigDecimal转为stringint[] midNum = new int[6];for (int i = 0; i < numStr.length(); i++) {//建一个长度为6的数组并把string的每个数值遍历赋值midNum[i] = numStr.charAt(i);}for (int i = 0; i < 6; i++) {for (int j = 0; j < PingStore.length; j++) {//六位数跟他的平方数组进行比较只要有一个重复直接结束if (midNum[i] == PingStore[j]) {return true;}}}return false;}}
http://www.lryc.cn/news/2244.html

相关文章:

  • 04动手实践:手把手带你实现gRPC的Hello World
  • 区块链技术与应用1——BTC-密码学原理
  • PyTorch学习笔记:data.WeightedRandomSampler——数据权重概率采样
  • SpringMVC对请求参数的处理
  • 12年老外贸的经验分享
  • 电子电路中的各种接地(接地保护与GND)
  • php实现农历公历日期的相互转换
  • 基于SpringBoot的房屋租赁管理系统的设计与实现
  • 一文带你为PySide6编译MySQL插件驱动
  • 图论算法:树上倍增法解决LCA问题
  • Java线程池中submit() 和 execute()方法有什么区别
  • Vue.extend和VueComponent的关系源码解析
  • 【动态规划】01背包问题(滚动数组 + 手画图解)
  • javaEE 初阶 — 超时重传机制
  • 小米5x wlan无法打开解决
  • 负载均衡之最小活跃数算法
  • JavaScript 评测代码运行速度的几种方法
  • Linux 编译器 gcc/g++
  • 2.Java基础【Java面试第三季】
  • Java高级-多线程
  • mysql高级(事务、存储引擎、索引、锁、sql优化、MVCC)
  • Java后端开发功能模块思路
  • CAPL(vTESTStudio) - DoIP - TCP发送_05
  • 使用IntelliJ IDEA搭建datax-web开发环境
  • [SSD固态硬盘技术 14] GC垃圾回收太重要了
  • lamada表达式、stream、collect整理
  • Nacos 入门微服务项目实战
  • 【c++】类和对象:让你明白“面向一个对象有多重要”:构造函数,析构函数,拷贝构造函数的深入学习
  • 职场IT老手教你3步教你玩转可视化大屏设计,让领导眼前一亮!
  • 【光伏功率预测】基于EMD-PCA-LSTM的光伏功率预测模型(Matlab代码实现)