杨辉三角的变形 C语言实现

杨辉三角的变形

描述
请添加图片描述

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

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

数据范围: 1 ≤ n ≤ 1 0 9 1≤n≤10^{9} 1n109

输入描述:
输入一个int整数

输出描述:
输出返回的int值

示例1
输入:
4
复制
输出:
3

代码

#include <stdio.h>

//  找规律
//                                               行号    第一个偶数在该行第几个
//                    1                           1             -1
//                1   1   1                       2             -1
//            1   2   3   2   1                   3              2
//         1  3   6   7   6   3   1               4              3
//      1  4  10  16  19  16  10  4  1            5              2
//   1  5  15 30  45  51  45  30  15 5  1         6              4
//
//  首个偶数在该行第几个的规律: -1 -1 (2 3 2 4)···(2 3 2 4)
int main() {
    int n;
    scanf("%d",&n);
    int pos;
    if(n<=2)
        pos=-1;
    else if(n%2!=0)
        pos=2;
    else if(n%4==0)
        pos=3;
    else
        pos=4;
    printf("%d",pos);
    return 0;
}

请添加图片描述

补充 杨辉三角形

杨辉三角:是二项式系数在三角形中的一种几何排列。它的两条斜边都是1,中间数字等于它肩上数字之和。
举例:
请添加图片描述

杨辉三角形的打印

#include <stdio.h>
/*二维数组法*/
int main(){
    int n;
    printf("请输入行数:");
    scanf("%d",&n);
    int arr[n][n];  //杨辉三角n行有n个元素
    
    // 三角形两条边上元素都是1
	for(int i = 0;i < n;i++)
	{
        arr[i][0] = 1;
		arr[i][i] = 1;  
    }   
    
    // 从第三行开始每行的二个元素都是上一行前一个元素和后一个元素之和
    for(int i = 2;i < n;i++)
	{
        for(int j = 1;j < i;j++)
		{
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
        }
    } 
	  
    // 打印杨辉三角形
    for(int i = 0;i < n;i++)
	{
        // 打印三角形左边的空格
        for(int j = 0;j < n-i;j++){
            printf("   ");
        }
        // 打印每行的元素
        for(int k = 0;k < i+1;k++)
		{
            printf("%6d",arr[i][k]);
        }
        printf("\n");
    }   
    return 0;
}

运行结果:
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值