题目描述
以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。
求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3。
数据范围: 1 <= n <= 10^9
本题有多组输入数据
输入描述:
输入一个int整数
输出描述:
输出返回的int值
示例1
输入:
4
2
输出:
3
-1
题解思路
- 继续往下补充数据可以发现,当 n > 2 开始,第一个偶数位置每4行为 2 3 2 4 的一个循环
代码实现
#include <stdio.h>
int main()
{
int n;
int result[] = {2, 3, 2, 4};
while(scanf("%d", &n) != EOF) {
if(n < 3) {
printf("%d\n", -1);
}
else {
n -= 3;
n %= 4;
printf("%d\n", result[n]);
}
}
return 0;
}