矩阵幂

矩阵幂

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

#include <stdio.h>
void mul(int n,int a[n][n],int b[n][n])
{
    int i,j,k,c[n][n];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            c[i][j]=0;
            for(k=0;k<n;k++)
                c[i][j]+=a[i][k]*b[k][j];
        }
    }  
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            a[i][j]=c[i][j];
}
int main()
{
    int m,n,k,i,j;
    scanf("%d%d",&n,&k);
    int a[n][n],ans[n][n];
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            scanf("%d",&a[i][j]);
            if(i==j)
                ans[i][j]=1;
            else
                ans[i][j]=0;
        }
    while(k!=0)
    {
        if(k%2==1)
            mul(n,ans,a);
        k/=2;
        mul(n,a,a);
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d ",ans[i][j]);
        printf("\n");
    }
}
(•̀ᴗ•́)و
全部评论

相关推荐

北斗导航Compass低仿版:学历一般 没实习 非科班,肯定很难过初筛了,先找个中小厂好好干吧,拿这段实习去投大厂实习
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务