#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
long long int n,j,i;
while(cin>>n)
{
j=0;
int f[n];
for(i=0;i<=n;i++)
{
if(i==0||i==1) f[i]=1;
else f[i]=f[i-2]+f[i-1];
}
j=f[i]%2012;
cout<<j<<endl;
}
return 0;
}
#include
#include
#include
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
long long int n,j,i;
while(cin>>n)
{
j=0;
int f[n];
for(i=0;i<=n;i++)
{
if(i==0||i==1) f[i]=1;
else f[i]=f[i-2]+f[i-1];
}
j=f[i]%2012;
cout<<j<<endl;
}
return 0;
}
你在建表的時候就已經溢位了喔( f[i] = f[i - 2] + f[i - 1] 那一行)。
費式數列的第80項就已經是23416728348467685這麼大了。
所以靈活地要運用餘數的性質喔。
不能建完才取餘數。