精华内容
下载资源
问答
  • 输入一个正整数N(N不大于100),输出一个n行的蛇形矩阵。 示例输入: 5 示例输出: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 解法一: while True: try: N = int(input()) tmp_begin = 1 # 第一行的数 for i in ...
  • c++蛇形矩阵

    2017-08-09 17:42:45
    以前用c++写的一个蛇形矩阵
  • 蛇形矩阵leetcode dingjianhub 的 leetcode 题解 写在前面 这里是 的 leetcode 刷题的笔记。 包含了已经提交的题目的代码、笔记。有些笔记较为详细,有些较为简略。 在这些笔记中,很多内容是参考、摘录、再创作了很...
  • 使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵
  • 逆时针蛇形矩阵问题

    2019-01-05 12:48:47
    这是一个c语言的作业,能够输出逆时针蛇形矩阵,很好用!!
  • 螺旋蛇形矩阵

    2013-09-05 23:55:34
    自己写的一个小程序,输入一个整数N,输出N阶逆时针蛇形矩阵
  • c++练习题蛇形矩阵

    2020-10-26 21:08:59
    c++练习题蛇形矩阵
  • 蛇形矩阵

    2021-01-12 01:07:04
    给你一个整数n,输出n∗n的蛇形矩阵。 输入描述: 输入一行,包含一个整数n 输出描述: 输出n行,每行包含n个正整数,通过空格分隔。 1<=n<=1000 输入样例: 4 输出样例: 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 ...

    题目描述
    给你一个整数n,输出n∗n的蛇形矩阵。
    输入描述:
    输入一行,包含一个整数n
    输出描述:
    输出n行,每行包含n个正整数,通过空格分隔。

    1<=n<=1000

    输入样例:
    4

    输出样例:

    1 2 6 7
    3 5 8 13
    4 9 12 14
    10 11 15 16

    思路: 蛇形三角形和蛇形填数的升级版,多个分别奇偶讨论而已。n为奇数和n为偶数时,斜着填数的次数不同。
    (今天有空,详注了代码@-@)

    #include <bits/stdc++.h>
    using namespace std;
    int arr[1010][1010];
    int n;
    void solve()//把矩形分为两个三角形(1,1)(1,n)(n,1)组成,(1,n)(n,n)(n,1)组成 
    {
    	arr[1][1]=1;//起点初始化 
    	int tot=1;//计数器初始化 
    	int x=1,y=1;//坐标初始化 
    	if(n%2==0)//n为偶数 
    	{
    	while(tot<n*n) //先填左上角的 
    	{
    		arr[x][++y]=++tot;//遇到上边界向右填数 
    		while(arr[x+1][y-1]==-1)	arr[++x][--y]=++tot;//判断下个点,是否在矩阵范围内并斜左下填数 
    		if(tot==(((n*n)/2)+n/2)) break;//填到对角线的时候退出,找规律即可 
    		arr[++x][y]=++tot;//遇到左边界向下填数 
    		while(arr[x-1][y+1]==-1)	arr[--x][++y]=++tot;//斜右上填数 
    	}
    	while(tot<n*n)//继续补完 
    	{
    		arr[x][++y]=++tot;//同理可得 
    		while(arr[x-1][y+1]==-1)	arr[--x][++y]=++tot;	
    		arr[++x][y]=++tot;
    		while(arr[x+1][y-1]==-1)	arr[++x][--y]=++tot;
    	}}
    	else//n为奇数,遇到对角线情况退出的位置不同,其余类似 
    	{
    	while(tot<n*n)
    	{
    		arr[x][++y]=++tot;
    		while(arr[x+1][y-1]==-1)	arr[++x][--y]=++tot;
    		arr[++x][y]=++tot;
    		while(arr[x-1][y+1]==-1)	arr[--x][++y]=++tot;
    		if(tot==((n*n)/2+n/2+1))	break; 
    	}
    	while(tot<n*n)
    	{
    		arr[++x][y]=++tot;
    		while(arr[x+1][y-1]==-1)	arr[++x][--y]=++tot;
    		arr[x][++y]=++tot;
    		while(arr[x-1][y+1]==-1)	arr[--x][++y]=++tot;
    	}	
    	}
    	return ;
    }
    int main()
    {
    	int i,j;
    	cin>>n;
    	for(i=1;i<=n;i++)//给矩阵划上范围,先让矩阵里的值都为-1 
    		for(j=1;j<=n;j++)	arr[i][j]=-1;
    	
    	solve();
    	
    	for(i=1;i<=n;i++)//输出矩阵 
    	{
    	for(j=1;j<=n;j++)	cout<<arr[i][j]<<" ";
    	cout<<endl;
    	}
    }
    
    展开全文
  • C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之...
  • 蛇形矩阵leetcode 《剑指 Offer》leetcode-cn 平台题解 写在前面 这里是 在 leetcode-cn 刷 《剑指 Offer》算法题的笔记。 包含了已经提交的题目的代码、笔记。有些笔记较为详细,有些较为简略。 在这些笔记中,很多...
  • 因此输出的形状,像条蛇,因此称为蛇形矩阵.
  • C语言
  • c语言版蛇形矩阵实现

    2010-10-01 00:59:54
    蛇形矩阵的实现的经典案例for(i=1;i;i++)/*对副对角线上三角端点赋值*/ { k=k+i; if(i%2==1) { a[0][i]=k; a[i][0]=k+i; } else { a[i][0]=k; a[0][i]=k+i; } }
  • 用C语言编写的蛇形矩阵源代码,很好玩的哟
  • 基于c++的蛇形矩阵,通过用户输入蛇形矩阵的维数,自动具体输出蛇形排列矩阵

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,182
精华内容 1,272
关键字:

蛇形矩阵