题解 | #蛇形矩阵#

蛇形矩阵

http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

思路在于对规律的寻找,可以看出,第一行的每个元素都是(j * j+ j)/2,的到的,那第二行就是第一行去掉第一个元素然后-1,就对应到了第二行,第三行就是第一行去掉前两个元素-2,就得到了第三行,如何控制去掉第一个还是第二个呢?我们可以定义一个变量c,让j+c元素向后偏移,初始为0,每结束一行就++c。这样就可以了。

#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    int arr[n][n];
    int c = 0;
    for(int i =1;i<=n;i++)
    {
        for(int j =1;j<=n-i+1;j++)
        {
            printf("%d ",((j+c)*(j+c)+j+c)/2-c);
        }
        c++;
        printf("\n");
    }
    
    return 0;
}
全部评论
点赞
送花
回复
分享
发布于 2023-02-20 17:17 美国
这个二维数组没用到吧
点赞
送花
回复
分享
发布于 2023-04-22 09:27 安徽
滴滴
校招火热招聘中
官网直投

相关推荐

TP-LINK 前端工程师 年包大概20出头 本科
点赞 评论 收藏
转发
9 1 评论
分享
牛客网
牛客企业服务