新型斐波那契数列
时间限制:100ms 内存限制:256.0MB 代码提交间隔:3分钟(现在可以提交)
问题描述
新型斐波那契数列的第一、二、三项都为1,从第四项起每一项等于前面三项之和,求此数列第n项模m的余数。
输入格式
输入一行为两个整数n、m,用空格隔开。
输出格式
输出一行为新型斐波那契数列第n项模m的余数。
样例输入
7 3
样例输出
2
数据规模和约定
1≤n≤10^18,1≤m≤100
编译语言
C++98
我的代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
long long t=0,a=1,b=1,c=1;
long long n,m;
cin>>n>>m;
for(long long i=4;i<=n;i++){
t=a+b+c;
c=b;
b=a;
a=t;
t%=m;
a%=m;
b%=m;
c%=m;
}
cout <<t%m;
return 0;
}
求救