输入一个正整数,求出角谷猜想过程中的每一个数。
【定义】
角谷猜想。日本数学家角谷静夫在研究自然数时发现了一个现象:对于任意一个自然数n,如果m为偶数,则将其除以2;如果n为奇数则将其乘以3,然后再加1。按照上述方法经过有限次运算后,总可以得到自然数1。人们将角谷静夫的这一发现称为“角谷猜想”。
例如对于自然数21,因为21是奇数,先将其乘以3,再加上1,得到64。64是偶数除以2,得到32。因32是偶数,除以2得到还是偶数,如此继续下去,直到为1。
21-->64-->32-->16-->8-->4-->2-->1
【分析】
任何一个数的角谷猜想过程步骤如下:
当n不为1,如果n为偶数,则使n除以2,并用商取代n,输出商;如果n为奇数,则使n乘以3加1取代n,并输出该值。当n为1,算法结束。
code:
#include<stdio.h>
#include <iostream>
void main()
{
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("角谷猜想过程中的每一个数:\n%d", n);
while (n != 1)
{
if (n % 2 == 0)
{
n /= 2;
printf("->%d", n);
}
else
{
n = n * 3 + 1;
printf("->%d", n);
}
}
printf("\n");
system("pause");
}
结果: