zoukankan      html  css  js  c++  java
  • Algorithm Gossip (48) 上三角、下三角、对称矩阵

    前言

    This Series aritcles are all based on the book 《经典算法大全》; 对于该书的所有案例进行一个探究和拓展,并且用python和C++进行实现; 目的是熟悉常用算法过程中的技巧和逻辑拓展。

    提出问题

    48.Algorithm Gossip: 上三角、下三角、对称矩阵

    说明

    理解基础的线性代数基础, 判断上三角、下三角、对角阵, 会算行列式的结果, 也就是化下三角; 可以尝试下。

    定位

    基础题

    分析和解释

    代码

    #include <stdio.h>
    #include <stdlib.h>
    #define N 5
    int main(void) {
    	int arr1[N][N] = {
    		{1, 2, 3, 4, 5},
    		{0, 6, 7, 8, 9},
    		{0, 0, 10, 11, 12},
    		{0, 0, 0, 13, 14},
    		{0, 0, 0, 0, 15}};
    		int arr2[N*(1+N)/2] = {0};
    		int i, j, loc = 0;
    		printf("原二维资料:
    ");
    		for(i = 0; i < N; i++) {
    			for(j = 0; j < N; j++) {
    				printf("%4d", arr1[i][j]);
    				}
    			printf("
    ");
    			}
    		printf("
    以列为主:");
    		for(i = 0; i < N; i++) {
    			for(j = 0; j < N; j++) {
    				if(arr1[i][j] != 0)
    					arr2[loc++] = arr1[i][j];
    				}
    			}
    		for(i = 0; i < N*(1+N)/2; i++)
    			printf("%d ", arr2[i]);
    		printf("
    输入索引(i, j):");
    		scanf("%d, %d", &i, &j);
    		loc = N*i - i*(i+1)/2 + j;
    		printf("(%d, %d) = %d", i, j, arr2[loc]);
    		printf("
    ");
    		return 0;
    		}
    

    拓展和关联

    后记

    参考书籍

    • 《经典算法大全》
    • 维基百科
  • 相关阅读:
    silverlight 跨域文件位置
    Asp.net弹出新窗口,获得返回值
    开通CNblog咯。
    访问IIS元数据库失败
    li可以显示多列
    [转]vs2005 sp1 下载地址、安装方法更新非常慢
    英特尔未来教育核心课程
    很好用的软键盘
    CMD里显示彩色文字
    将输入的中文按要求翻译成拼音
  • 原文地址:https://www.cnblogs.com/actanble/p/6711237.html
Copyright © 2011-2022 走看看