两个给定数字之间的每个数字的 Collatz 猜想
Collatz conjeceture for each number that is between the two given numbers
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));
}
}
values
ArrayList 将保存 [inferiorLimit,superiorLimit]
之间当前数字的数字序列
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));
}
}
values
ArrayList 将保存 [inferiorLimit,superiorLimit]