C++生成zigzag矩阵

// test_max.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"
#include <iostream>
using namespace std;

#define N 8

int main()
{
		int** A=(int **)malloc(N*sizeof(int*));
		for(int i=0;i<N;i++)
		{
			A[i]=(int*)malloc(N*sizeof(int));
		}

		int s=0;
		int temp=0;
		for(int i=0;i<N;i++)
			for(int j=0;j<N;j++)
			{
				if(i+j<=N-1)
				{
					s=i+j;
					temp=s*(s+1)/2;
					if(s%2==0)
					{
						A[i][j]=temp+j;
					}
					else
					{
						A[i][j]=temp-j+s;
					}
				}
				else
				{
					s=N-1-i+N-1-j;
					temp=s*(s+1)/2;
					if(s%2==0)
					{
						A[i][j]=N*N-1-temp-(N-1-j);
					}
					else
					{
						A[i][j]=N*N-1-temp-(N-1-i);
					}
				}
			}

		for(int i=0;i<N;i++)
		{
			for(int j=0;j<N;j++)
			{
				cout<<A[i][j]<<"	";
			}
			cout<<endl;
		}

		system("pause");
		return 0;
}


C++生成zigzag矩阵

时间: 2024-12-15 07:12:14

C++生成zigzag矩阵的相关文章

GEEK编程练习— —zigzag矩阵

题目 输入矩阵规模N,输出zigzag矩阵. zigzag顺序为下图所示 输入 5 输出 0 1 5 6 14 2 4 7 13 15 3 8 12 16 21 9 11 17 20 22 10 18 19 23 24 解析1 此方法是计算顺序位置的对应元素值. 假定i为行数,j为列数,每一条斜线下标(i+j)为常数,记为s(s=i+j). 处理分为上三角和下三角两部分处理. 对于上三角,每一个斜线上的元素个数比上一斜线多一个,每个斜线上的第一个元素表示了该斜线之前元素的个数.运用等差数列求和公

numpy的生成网格矩阵 meshgrid()

numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵 meshgrid函数可以接受 x1, x2,..., xn 等 n 个一维向量,生成 N-D 矩阵. 1 基本语法 meshgrid(*xi, **kwargs) 参数: xi - x1, x2,..., xn : array_like 返回值: X1, X2,..., XN : ndarray 2 示例 2.1 一个参数时 import numpy as np a = [1,2,3] b = np.meshgr

python 生成螺旋矩阵

对于任意 m*n 矩阵,将 1~m*n 的数字按照螺旋规则在矩阵中排列. 如 m=3,n=3,期望结果为: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 以下代码支持方阵以及非方阵. code: # coding=utf-8 import numpy flag=1 pos_x=0 pos_y=0 def inc(pos_x,pos_y,row,col): if(-1<pos_x<row and -1<pos_y<col): return Tru

java学习-zxing生成二维码矩阵的简单例子

这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件 也可使用maven添加依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.0</version> </dependency> 最简单的生成二维码的方法,

LeetCode:Spiral Matrix II - 将元素1-n^2以螺旋序填充到矩阵

1.题目名称 Spiral Matrix(螺旋输出矩阵中的元素) 2.题目地址 https://leetcode.com/problems/spiral-matrix-ii/ 3.题目内容 英文:Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. 中文:给出一个整数n,生成一个矩阵,使用数字1到n^2以螺旋顺序填充这个矩阵 例如:给出n=3,则生成如下矩阵:

C#运用GmaQrCode生成二维码

项目中需要生成二维码,方法比较多,可以采用JS插件,也可以采用第三方插件后台生成二维码,在后台方法中可以采用QRCode或者GmaQrCode,现在介绍一种C#在后台生成二维码的方法: /// <summary> /// 获取二维码 /// </summary> /// <param name="codeString">编码字符</param> /// <returns>二维码地址</returns> public

经典矩阵问题

//经典矩阵问题是利用数字生成一个矩阵,而该矩阵刚好是一个正方形,该矩阵内的数字是有 //规律的排序而形成矩阵.比较常见有以下形式 //1. //  1 2 9 10 //  4 3 8 11 //  5 6 7 12 //  16 15 14 13 //2. //  1 2 6 7 //  3 5 8 13 //  4 9 12 14 //  10 11 15 16 //3. //  1 2 3 4 //  12 13 14 5 //  11 16 15 6 //  10 9 8 7 //4.

Matlab矩阵基本操作(定义,运算)

转自:http://blog.csdn.net/perfumekristy/article/details/8119861 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间用”;”(或回车符)隔开: d.矩阵的元素可以是数值.变量.表达式或函数: e.矩阵的尺寸不必预先定义. 二,矩阵的创建: 1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则.建立向

图像处理之 opencv 学习---矩阵的操作

OpenCV的一些操作,如生成随机矩阵,高斯矩阵,矩阵相乘之类的 /*功能:说明矩阵的一些操作方法*/#include "cv.h"//该头文件包含了#include "cxcore.h"#include "highgui.h"#include <stdio.h>void PrintMat(CvMat *A); // 显示矩阵void GenRandn(CvMat *arr, int seed); // 生成正态分布的随机矩阵void