今天基础打卡最后一天
1.序列求和
#include<iostream>
using namespace std;
int main()
{
long long int n,i;
long long int sum=0;
cin>>n;
for(i=1;i<=n;i++)
{
sum+=i;
}
cout<<sum<<endl;
return 0;
}
2.矩阵乘法
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main()
{
int a[1000][1000];
int b[1000][1000];
int c[1000][1000];
int n,m;
int i,j,k;
cin>>n>>m;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
}
// 创建单位矩阵,用于第一次乘法
for(i=0;i<n;i++)
{
b[i][i]=1;
}
while(m--)
{
memset(c,0,sizeof(c));
//清空内存
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
{
c[i][j]+=b[i][k]*a[k][j];
//矩阵各个位置上元素的计算
}
// 将当前的乘法结果直接赋值给 b[][]
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
b[i][j] = c[i][j];
}
}
for(i=0;i<n;i++)//几次幂,二次幂就只循环一次
{
for(j=0;j<n;j++)
cout<<b[i][j]<<' ';
cout<<endl;
}
return 0;
}