题解 | #杨辉三角的变形#

杨辉三角的变形

https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43

#include <iostream>
using namespace std;

int evenPosition(int n)
{
    if (n == 1 || n == 2)
        return -1;
    else if (n == 3)
        return 2;
    else if (n % 2 != 0)
        return 2;
    else if ((n + 1) / 2 % 2 == 0)
        return 3;
    else
        return 4;
}

int main() {
    int N;
    cin>>N;
    cout<<evenPosition(N);
}
// 64 位输出请用 printf("%lld")

笑死我了,如果用一个递归的化,输入100000会递归的太深溢出,然后可以看到规律,每一行(第i行)第二个数k满足k=i-1,所以奇数行第二个就是偶数,第三行是一个斐波那契数列,满足第偶数行的时候,如果该偶数行是2n,然后n是偶数,就是偶数。所以只剩下一种情况,偶数行,且是2*(2*k+1),,我们上一行是奇数行,满足第一个为奇数,第二个为偶数,第三个因为和该行第三个奇偶性相反,而该行第三个不是偶数,所以上面那个就是偶数,第二个加第三个是偶数。我推测了一下,就是第四个了

全部评论

相关推荐

03-13 12:48
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务