设计一个2×2的矩阵结构体,然后计算一个矩阵A的n次幂。为了避免整型溢出,请输出矩阵中每个元素模10^9+7的结果。
模10^9+7是 a%(10的9次方)+7,还是a%(10的9次方+7)?
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a[2][2],i,j,k,t,n;
int b[2][2];
t = pow(10.0,9);
cout << "请输入n的值:";
cin >> n;
cout << "请输入2*2的矩阵:"<<endl;
for (i=0;i<2;i++)
{
for (j=0;j<2;j++)
{
cin >> a[i][j];
b[i][j] = 1;
}
}
//计算
for (k=0;i<n;k++)
{
for (i=0;i<2;i++)
{
for (j=0;j<2;j++)
{
b[i][j] = ((long long)b[i][0]*a[0][j] + b[i][1]*a[1][j])%(t+7); //模10的9次方+7
//这两个语句你自己试试吧,看看哪个是你要的
//b[i][j] = ((long long)b[i][0]*a[0][j] + b[i][1]*a[1][j])%t+7; //模10的9次方+7
}
}
}
//输出
for (i=0;i<2;i++)
{
for(j=0;j<2;j++)
cout << b[i][j] << " ";
cout <<endl;
}
return 0;
}