algorithm++:一个整数称为是:【幸运数】,如果这个整数的各位数字的平方和为1或者反复计算各位数字的平方和为1 例如 19 是个幸运数
2024-09-07 07:07:09
1):一个整数称为是:【幸运数】,如果这个整数的各位数字的平方和为1或者反复计算各位数字的平方和为1 例如 19 是个幸运数
coding:java程序实现
import org.junit.Test; import java.util.ArrayList;
import java.util.List; public class XingYunShu { List<Integer> list = new ArrayList<>(); @Test
public void demo() {
long startTime = System.currentTimeMillis();
// 100 以内的幸运数
for (int i = 0; i < 100; i++) {
boolean flag = isLuckyNumber(i);
System.out.println("是否为幸运数:{" + i + "}=" + flag);
}
long endTime = System.currentTimeMillis();
System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
} // 判断是否为幸运数
public boolean isLuckyNumber(Integer num) {
List<Integer> integerList = splitNum(num);
Integer count = 0;
for (Integer l : integerList) {
count += l * l;
}
if (count == 1) {
return true;
}
if (list.contains(count)) {
return false;
}
list.add(count);
return isLuckyNumber(count);
}
// 把一个整数拆分为单个数值
public List<Integer> splitNum(Integer num) {
List<Integer> list = new ArrayList<Integer>();
int length = (num + "").length();
for (int i = length - 1; i >= 0; i--) {
list.add(num % 10);
num /= 10;
}
return list;
} }
将一个整数方式拆分的方式还有很多种,比如 number.toCharArray(); 这里避免了类型之间的转换。
有人会问道 类型之间的转换很消耗资源吗?
java设计模式 的核心就是多态,各种流行的框架都有大量类型转换的操作。
再烂的编程语言也不在乎这点资源,更何况java和c#。
稍微复杂点的算法,几层循环一嵌套就顶你这来回转换几万次,计算机没那么水,怎么说也是高科技是不。
最新文章
- iOS 最新版 CocoaPods 的安装流程
- 【noip暑假tarjan专题】
- Regional Changchun Online--Travel(最小生成树&;&; 并查集)
- Apache虚拟主机配置(多个域名访问多个目录)
- IOS-开发日志-UITextField属性
- 多线程(Thread),其实很简单!
- MojoliciousLite: 实时的web框架 概述
- 搭建网络yum源
- 解决css引用图片不显示问题:background-image: url(../image/document.png);
- Dubbo源码学习--服务发布(ProxyFactory、Invoker)
- hiboCoder 1041 国庆出游 dfs+思维
- 1.JAVA-Hello World
- ajaxToolkit 异步加载报 错误500的解决方法
- Linux 总线、设备、驱动模型 与 设备树
- PS扣签名
- hibernate框架学习之数据查询(QBC)helloworld
- 常用的web服务器软件整理
- C++学习的书籍
- 初始C#(二)
- Fire! 又是图 bfs
热门文章
- Jstorm执行task报错windows CONFIG SET protected-mode no
- 完整版EXCEL导出 (大框架SpringCloud 业务还是Springboot一套)
- Taro_Mall 是一款多端开源在线商城小程序.
- centos 7上openJdk 安装
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.1)- FlexSPI NOR连接方式大全(RT600)
- 安装skimage和cv2
- 迄今为止最硬核的「Java8时间系统」设计原理与使用方法
- HDFS 客户端读写操作详情
- Protocol buffers编写风格指南
- 使用.Net Core编写命令行工具(CLI)