列表

详情


HJ53. 杨辉三角的变形

描述

以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。

求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。

数据范围:

输入描述

输入一个int整数

输出描述

输出返回的int值

示例1

输入:

4

输出:

3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 416KB, 提交时间: 2022-01-24

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        int pos;
        if(n==1||n==2){
            pos =-1;
        }else if(n%2==1){
            pos=2;
        }else if(n%4==0){
            pos=3;
        }else if(n%4==2){
            pos = 4;
        }
        printf("%d\n",pos);
        
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 292KB, 提交时间: 2021-12-05

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
1
1 1 1
1 2 3 2 1
1 3 6 7 6 3 1
1 4 10 16 19 16 10 4 1
1 5 15 30 45 51 45 30 15 5 1
1 6 21 50 90 126 141 126
*/
/*
1 -1
2 -1
3 2
4 3
5 2
6 4
7 2
8 3
9 2
10 4
*/
int main()
{
    int num = 0;
    int pos = 0;

    while (scanf("%d", &num) != EOF) {
        if (num <= 2) {
            pos = -1;
        } else if (num % 2 == 1) {
            pos = 2;
        } else if (num % 4 ==0) {
            pos = 3;
        } else if (num % 4 == 2) {
            pos = 4;
        }
        printf("%d\n", pos);
    }

    return 0;
}

上一题