C语言算法(1)-蛇形矩阵

题目来自:C语言网

题目描述

蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

输入

本题有多组数据,每组数据由一个正整数N组成。(N不大于100)

输出

对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

样例输入

5

样例输出

1 3 6 10 15
2 5 9 14
4 8 13
7 12
11我在做这道题的时候想到是用数组来做,但是用数组其实是比较繁琐的。随即我就想出了另一种算法,是不用数组的解析 2 3 4  5  第一行是第一个数?2得到第二个数。。。1 3 6 10 15 3 4 5    第二行是第一个数+3得到第二个数。。。2 5 9 144 8 137 1211依次类推就能得出他的规律,只要规律找出来了,其实写程序就非常简单了
以下贴出源码??
 1 #include <stdio.h>
 2 int main ()
 3 {
 4     int n,i,j,m,s,k;
 5     scanf("%d",&n);
 6     s=1;m=1;
 7     for(i=1;i<=n;i++)
 8     {
 9         m=s;        //m是要输出的每一项,s是第一列里的每两项的差值,k是每一行的两项的差值
10         s=s+i;       
11         k=i+1;
12
13         for(j=i;j<=n;j++)
14         {
15             if(j==n)
16             {
17                 printf("%3d\n",m);
18             }
19             else
20             {
21                 printf("%3d",m);
22             }
23             m+=k;
24             k++;
25         }
26     }
27     return 0;
28 }


原文地址:https://www.cnblogs.com/mck0814/p/9220326.html

时间: 2024-10-19 17:01:46

C语言算法(1)-蛇形矩阵的相关文章

蛇形矩阵

如上图所示,是一个4*4的蛇形矩阵 算法思路 由图可观察到该矩阵可分为上三角和下三角.每个三角要根据蛇形的奇偶行进行计数. 算法代码 #include <stdio.h> int main() { int a[10][10]; int n; printf("Input n:"); scanf("%d",&n); int i=0,j=0,k=0; int count=1; for(i=0;i<n;i++)/*上三角 i代表是蛇形的奇偶行*/

第3章第1节练习题1 蛇形矩阵

问题描述 蛇形矩阵即使用二维数组完成来回曲折的赋值,举例说明如下所示的形式即为蛇形数组. 算法思想 观察该二维数组,只是可以"人为"的发现它就像一条蛇的形状来回爬行,然而并没有什么卵用,不能明确的站在计算机的角度上来实现这个数组.于是将所有的下标列出来便可以得到下述所述的曲线走势. 然后结合第一张图便可以发现 数字从2~3的过程中,下标行变化范围是0~1:下标列范围是1~0: 数字从4~6的过程中,下标行变化范围是2~0:下标列范围是0~2: 数字从7~10的过程中,下标行变化范围是0

js实现蛇形矩阵-腾讯前端笔试题

参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我就不多说了. var lineCount=0; var numCount=1; var lineLog=1; var doubleArray=[]; var result="result:"; var lineCountGet; function index (n) { ArrayMake

易语言算法原理浅析【一】

注: 如果你看完了下面的文章.就来试试这个KeyGenMe吧,相信你能有所收获. http://www.52pojie.cn/thread-540179-1-1.html 一.文章开头首先我们要贴上一段易语言代码,并且编译这段代码,从汇编角度分析易语言程序编译后,易语言算法在汇编中的实现过程. .版本 2 .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 变量1, 整数型 .局部变量 变量2, 整数型 .局部变量 变量3, 整数型 变量2 = 1 变量3 = 2 变量1 =

随便写的蛇形矩阵

[问题描述] 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. [要求] [数据输入]本题有多组数据,每组数据由一个正整数N组成.(N不大于100) [数据输出]对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. [样例输入] 5 [样例输出] 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 /*作者:Yosha*/ #include "stdio.h" int main() {

(水题)蛇形矩阵

1160 蛇形矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和. 输入描述 Input Description n(即n行n列) 输出描述 Output Description n+1行,n行为组成的矩阵,最后一行为

Java编码 蛇形矩阵的构建与遍历输出

一.蛇形矩阵的构建,并按行输出 例: 输入:n, 生成n*n的蛇形矩阵 1 2 3 8 9 4 7 6 5 输出:1 2 3 8 9 4 7 6 5 java编码 public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int n = in.nextInt(); if(n < 0) return; if(n == 1){ Sys

蛇形矩阵与螺旋矩阵

自己写的蛇形矩阵:(蛇形矩阵就是在NXN矩阵格子上从左上到右下以"之"字型增加或减少,像蛇盘绕着的形状.本程序从左上开始盘旋一直到右下达到最大值) #include <iostream> using namespace std; #define n 10//输入要更改的矩阵大小 void main() { int a[n][n]={0},k=1,j=0,i=0,s1[4]={0,1,2,3},t1[4]={1,1,2,2},m=0; for (int t=1;t<=n

1010: 蛇形矩阵

Description 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. Input 本题有多组数据,每组数据由一个正整数N组成.(N不大于100) Output 对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. Sample Input 5 Sample Output 1 3 6 10 152 5 9 144 8 137 1211 <pre name="code" class="cp