昨天在微信公众号看到 角古猜想,以前我就用代码实现过,这里记一下
这里和角古猜想没有多大关系,只是在用代码实现时,想到只用一个数学公式做到if语句的功能
还是先提一下这个猜想的内容:
任何一个自然数N
当N是奇数时——变为3N+1
当N是偶数时——变为 N/2
结果作为N再继续以上步骤,最终这一串N值将会变为 4->2->1->4->2->1的循环。
【1】这是简单是if语句
while (n != 1)
{
if (n % 2 == 0)
n = n / 2;
else
n = 3 * n + 1;
Console.WriteLine(n);
}
【2】如果要搞复杂一点,只用一个数学公式的话(n是一个自然数)
while (n != 1)
{
n=(0.5 * Math.Sin(Math.PI * n + 1.5 * Math.PI) + 0.5) * (3 * n + 1)+(0.5 * Math.Sin(Math.PI * n + 2.5 * Math.PI) + 0.5) * (n / 2);
Console.WriteLine(n);
}