1.使用数组:
#include<iostream>
int w[81];
int wn[81];
int sn[81];
int n=1;
using namespace std;
void count(int *w,int *wn,int *sn){
int s=0;
for(int i=80;i>=0;i--){
sn[i]+=((2*w[i]+wn[i]))%10;
sn[i-1]=(2*w[i]+wn[i])/10;
}
cout<<endl;
for(int k=0;k<=80;k++){
cout<<sn[k];
}
for(int i=80;i>=0;i--){
w[i]=wn[i];
wn[i]=sn[i];
sn[i]=0;
}
}
int main()
{
int i=0;
while(i<81){
w[i]=0;
wn[i]=0;
sn[i]=0;
i++;
}
w[80]=1;
wn[80]=3;
cin>>n;
for(int j=3;j<=n;j++){
count(w,wn,sn);
}
return 0;
}
2.java里面有一个类BigInetger
import java.math.BigInteger;
import java.util.Scanner;
/**
* 实现大数据存储
* @author yan
*
*/
public class Test {
private static Scanner sc=new Scanner(System.in);
private static int n=0;
public static void main(String[] args) {
while(sc.hasNextInt()){
n=sc.nextInt();
BigInteger[] big=new BigInteger[252];
big[0]=BigInteger.ONE;
big[1]=BigInteger.ONE;
big[2]=BigInteger.valueOf(3);
for(int i=3;i<=n;i++){
big[i]=big[i-1].add(big[i-2].multiply(BigInteger.valueOf(2)));
}
System.out.println(big[n]);
}
}
}