题解 | #杨辉三角的变形#
杨辉三角的变形
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),,我们上一行是奇数行,满足第一个为奇数,第二个为偶数,第三个因为和该行第三个奇偶性相反,而该行第三个不是偶数,所以上面那个就是偶数,第二个加第三个是偶数。我推测了一下,就是第四个了
查看11道真题和解析