• 编程算法


    旋转矩阵 代码(C)


    本文地址: http://blog.csdn.net/caroline_wendy


    输出旋转矩阵, 使矩阵是按对角线螺旋上升, 在输出规则确定以后, 就能够推断, 上升规律是, 行列相加为定值.

    所以採用两次循环的方法, 而且上下矩阵, 分开输出.

    如:

      1   2   6   7  15
      3   5   8  14  16
      4   9  13  17  22
     10  12  18  21  23
     11  19  20  24  25
    

    代码:

    /*
     * main.cpp
     *
     *  Created on: 2014.6.12
     *      Author: Spike
     */
    
    /*eclipse cdt, gcc 4.8.1*/
    
    #include <stdio.h>
    
    void output(int n)
    {
    	if (n < 0) return;
    
    	const int MAX = 100;
    	int a[MAX][MAX];
    
    	int min = 1;
    	int max = n*n;
    
    	//上半个矩阵
    	for (int i=0; i<n; i++) {
    		for (int j=0; j<i+1; j++)
    			if (i % 2 == 0) {
    				a[i-j][j] = min++;
    				a[n-1-i+j][n-1-j] = max--;
    			} else {
    				a[j][i-j] = min++;
    				a[n-1-j][n-1-i+j] = max--;
    			}
    	}
    
    	for (int i=0; i<n; i++) {
    		for (int j=0; j<n; j++)
    			printf("%3d%c", a[i][j], j == n - 1 ? '
    ' : ' ');
    	}
    
    }
    
    int main()
    {
    	output(5);
    	return 0;
    }
    


    输出:

      1   2   6   7  15
      3   5   8  14  16
      4   9  13  17  22
     10  12  18  21  23
     11  19  20  24  25
    




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Hibernate 持久化对象的状态
    Hibernate 主键生成策略
    Hibernate 环境搭建
    Struts2 UI标签
    Struts2 处理表单重复提交
    Struts2 模型驱动及页面回显
    Struts2 之 ognl
    Struts2 框架验证
    Struts2 手动验证
    Struts2 自定义拦截器
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4751069.html
Copyright © 2020-2023  润新知