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]); } } }