题解 | #矩阵幂#C暴力求解

矩阵幂

http://www.nowcoder.com/practice/31e539ab08f949a8bece2a7503e9319a

#include<stdio.h>
int main(){
    int n,k;
    while(scanf("%d",&n)!=EOF){
        scanf("%d",&k);
        int a[n][n];
        int b[n*n];
        int d[n][n];
        int x=0,y=0,sum=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                scanf("%d",&a[i][j]);
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                d[i][j]=a[i][j];
            }
        }
        while(--k){
            for(int i=0;i<n;i++){
                for(int e=0;e<n;e++){
                    for(int j=0;j<n;j++){
                        sum=sum+a[i][j]*d[j][e];
                    }
                    b[x]=sum;
                    x++;
                    sum=0;
                }
            }
            for(int i=0;i<n;i++){
                for(int j=0;j<n;j++){
                    a[i][j]=b[y];
                    y++;
                }
            }
            x=0;
            y=0;
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                printf("%d",a[i][j]);
                if(j==n-1)
                {
                    printf("\n");
                }
                else{
                    printf(" ");
                }
            }
        }
    }
    return 0;
}
全部评论

相关推荐

01-14 15:08
东南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务