社区讨论

输出内容奇怪,求调

P1962斐波那契数列参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mkrrt2qn
此快照首次捕获于
2026/01/24 11:49
4 周前
此快照最后确认于
2026/01/24 12:02
4 周前
查看原帖
CPP
#include <cstdio>
using namespace std;
const int p=1e9+7;
int n,res[3],A[3][3];
int main()
{
	scanf("%d",&n);
	res[0]=1,res[1]=0;
	A[0][0]=0,A[0][1]=1,A[1][0]=1,A[1][1]=1;
	while (n)
	{
		if (n%2)
		{
			res[0]=(res[0]*A[0][0]+res[1]*A[1][0])%p;
			res[1]=(res[0]*A[0][1]+res[1]*A[1][1])%p;
		}
		A[0][0]=(A[0][0]*A[0][0]+A[0][1]*A[1][0])%p;
		A[0][1]=(A[0][0]*A[0][1]+A[0][1]*A[1][1])%p;
		A[1][0]=(A[1][0]*A[0][0]+A[1][1]*A[1][0])%p;
		A[1][1]=(A[1][0]*A[0][1]+A[1][1]*A[1][1])%p;
		n/=2;
	}
	printf("%d",res[1]);
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...