if语句转为数学公式

昨天在微信公众号看到 角古猜想,以前我就用代码实现过,这里记一下

这里和角古猜想没有多大关系,只是在用代码实现时,想到只用一个数学公式做到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);
}

https://www.desmos.com/calculator/btywuuwaaj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值