角谷猜想编程验证

如题所述

以下是四种编程语言中角谷猜想的实现,每种语言都展示了如何验证给定初始数字最终是否会变为1的步骤:

Pascal语言:

pascal
Program JG;
Var
n, Tot: Longint;
Begin
Readln(n);
Tot := 1;
While n > 1 Do
Begin
Write(n, ' ');
If Odd(n) Then n := n * 3 + 1
Else n := n Div 2;
Inc(Tot);
End;
Writeln(1);
Writeln('STEP=', Tot);
End.

VB语言:

vb
Private Sub Command1_Click()
Dim Num As Long
Dim I As Integer
Num = Int(Rnd * 10000)
Picture1.Cls
Picture1.Print "原始数据为:" & Num & vbCrLf
Picture1.Print "以下是计算结果:"
I = 0
Do While Num > 1
If Num Mod 2 = 0 Then
Num = Num / 2
Else
Num = Num * 3 + 1
End If
Picture1.Print Num & vbCr;
I = I + 1
If I Mod 10 = 0 Then Picture1.Print vbNewLine
Loop
End Sub

Java语言:

java
public List getHailFiguresList(int n, int len) {
List list = new ArrayList>();
list.add(n);
int count = 0;
int previous = list.get(count);
while (count < len && previous != 1) {
if (previous % 2 == 0) {
list.add(previous / 2);
} else {
list.add(previous * 3 - 1);
}
count++;
previous = list.get(count);
}
return list;
}

C语言:
c
#include
int main() {
int n, count = 0;
printf("Please enter number: ");
scanf("%d", &n);
do {
if (n % 2) {
n = n * 3 + 1;
printf("[%d]: %d*3+1=%d\n", ++count, (n - 1) / 3, n);
} else {
n /= 2;
printf("[%d]: %d/2=%d\n", ++count, 2 * n, n);
}
} while (n != 1);
}

以上代码展示了四种编程语言中如何通过循环结构实现角谷猜想,每段代码都展示了从输入数字开始,逐步计算直到数字变为1的过程。
温馨提示:答案为网友推荐,仅供参考