zoukankan      html  css  js  c++  java
  • YTU 3020: 对称矩阵(数组)

    3020: 对称矩阵(数组)

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 3  解决: 2

    题目描述

    已知A和B为两个n*n阶的对称矩阵,输入时,对称矩阵只输入下三角行元素,存入一维数组,设计一个程序,实现以下功能。

    1、求对称矩阵A和B的和。

    2、求对称矩阵A和B得到乘积。

    输入

    输入包含两行,第一行为一个整数N,接下来为N个整数。N满足(N=n+n*(n-1)/2)n为矩阵的行数。

    输出

    输出对称矩阵A和B的和与乘积,中间留有一个空行!

    样例输入

    2
    1 2 3
    1 2 3
    

    样例输出

    2 4
    4 6
    
    5 8
    8 13

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include <stdio.h>
    #include <string.h>
    void print(int *a,int n)
    {
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
            {
                if(i>=j)printf(j!=n-1?"%d ":"%d
    ",a[i*(i+1)/2+j]);
                else printf(j!=n-1?"%d ":"%d
    ",a[j*(j+1)/2+i]);
            }
        }
    }
    int main()
    {
        int N;
        scanf("%d",&N);
        int n=N*(N+1)/2;
        int a[n],b[n],add[n],s[n];
        for(int i=0; i<n; i++)
            scanf("%d",a+i);
        for(int i=0; i<n; i++)
            scanf("%d",b+i);
        for(int i=0; i<n; i++)
            add[i]=a[i]+b[i];
        memset(s,0,sizeof(s));
        for(int i=0; i<N; i++)
        {
            for(int j=0; j<N; j++)
            {
                int num=0;
                for(int k=0; k<N; k++)
                {
                    int aa,bb;
                    if(i>=k)aa=a[i*(i+1)/2+k];
                    else aa=a[k*(k+1)/2+i];
                    if(k>=j)bb=b[k*(k+1)/2+j];
                    else bb=b[j*(j+1)/2+k];
                    num+=aa*bb;
                }
                if(i>=j)s[i*(i+1)/2+j]=num;
                else s[j*(j+1)/2+i]=num;
            }
        }
        print(add,N);
        printf("
    ");
        print(s,N);
        return 0;
    }

    应该有更好的算法,到最后还是没有想出来,/(ㄒoㄒ)/~~

  • 相关阅读:
    HTTP状态码详解
    Django QuerySet 进阶
    初识Django
    小白学习之路,网络编程(下)
    小白学习之路,网络编程(上)
    小白学习之路,面向对象补充
    用正则表达式实现的计算器
    小白学习之路,初识面向对象
    小白学习之路,常用模块
    函数补充知识
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989358.html
Copyright © 2011-2022 走看看