存储大数据的两种方法

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

猜你喜欢

转载自qq-24665727.iteye.com/blog/2299153