java - 两个给定数字之间的每个数字的 Collatz 猜想
问题描述
num = Integer.parseInt(tf1.getText());
entered = Integer.parseInt(tf1.getText());
num2 = Integer.parseInt(tf2.getText());
entered2 = Integer.parseInt(tf2.getText());
for (i =(int) num; i<= num2 ; i++){
for (j=0 ; j >= i ; j++) {}
System.out.println(i);
}
我必须使用数组列表吗?ArrayList<Integer> lists = new ArrayList<Integer>();
如果我使用它,我如何分隔数组列表中的每个数字,所以我找到了两个数字之间的数字,但是我如何获取每个数字并做 collatz 猜想 java,请我快速需要帮助
解决方案
collatz 猜想很简单n = n/2 if n%2 == 0
,n = 3*n + 1 if n%2 == 1
并且您一直在进行这些计算,直到n = 1
. 基于此,您可以像这样编写函数:
public static List<Integer> calculateConjecture(int number) {
List<Integer> values = new ArrayList<>();
while (number != 1) {
if (number % 2 == 0) {
number = number / 2;
} else {
number = 3 * number + 1;
}
values.add(number);
}
return values;
}
public static void main(String[] args) {
int inferiorLimit = 11;
int superiorLimit = 15;
for (int i = inferiorLimit; i <= superiorLimit; i++) {
System.out.println(calculateConjecture(i));
}
}
ArrayList将values
保存当前数字之间的数字序列[inferiorLimit,superiorLimit]
推荐阅读
- docker - 为什么 docker cp 命令更改 /etc/hosts /etc/hostname /etc/resolv.conf 所有者
- selenium - 前面的 xpath 轴给出不正确的结果
- numpy - Eigen 中的张量积与 numpy 兼容
- windows - 在 Docker + WSL 版本 2 中连接 ECONNREFUSED 127.0.0.1:27017 Mongo
- r - 为 1 小时的时间独立性细化不规则时间数据
- spring - Spring Boot Jetty 访问日志:记录服务器延迟时间
- node.js - 如何使用 exe 构建读取电子中的外部文件
- flutter - 在 Flutter 中存储缓存
- debugging - gdb 无法在 gdbserver (Rust x64) 上运行“elf64-x86-64”格式
- python - Discord py如何获取消息的作者并在dm中回复?