题解 | #杨辉三角的变形#
杨辉三角的变形
https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
#include <iostream>
using namespace std;
int count(int n) { //求第n行数字个数
return 2 * n - 1;
}
int num(int n, int i) { //求第n行第i个数的值
if (i > count(n)) return 0;
if (i == 1) return 1;
if (i == 2) return n - 1;
if (i == 3) return n * (n - 1) / 2;
if (i > 3) return num(n - 1, i) + num(n - 1, i - 1) + num(n - 1, i - 2);
return -1;
}
int oushu(int n) { //寻找第n行第一个偶数的位置
for (int i = 1; i <= count(n); i++)
if (num(n, i) % 2 == 0) return i;
return -1;
}
int main() {
int a, b;
cin >> a;
b = oushu(a);
cout << b << endl;
}
查看7道真题和解析