题解 | #杨辉三角的变形#
杨辉三角的变形
https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
//此题2.3.2.4循环找规律即可,否则运算会超时 #include <stdio.h> #include <math.h> int main() { int n; scanf("%d", &n); int num[4] = {3, 2, 4, 2,}; if (n == 1 || n == 2) { printf("-1"); } else if (n >= 3 && n <= pow(10, 9)) { int k = n % 4; printf("%d", num[k]); } return 0; } /*此题目要求的输入范围过大范围,需要取巧找规律 #include <math.h> #include <stdio.h> int main() { int n; scanf("%d", &n); int k = 2; if (n >= 1 && n <= pow(10, 9)) { int num[n + 1][(2 * n + 3)]; for (int i = 1; i < n + 1; i++) { num[1][2] = 1; num[i][0] = 0; num[i][1] = 0; num[i][(2 * i + 1)] = 0; num[i][(2 * i + 2)] = 0; if (i >= 2) { for (int j = 2; j < (2 * n + 1); j++) { num[i][j] = num[i - 1][j] + num[i - 1][j - 1] + num[i - 1][j - 2]; } } num[i][(2 * i + 1)] = 0; num[i][(2 * i + 2)] = 0;//刷新掉上面式子中最后两项的值 } while ((num[n][k] % 2) != 0) { k++; } if (k == (2 * n + 1)) { printf("-1"); } else { printf("%d", k - 1); } } return 0; }*/