某种序列

 


描述

数列A满足An = An-1 + An-2 + An-3, n >= 3 
编写程序,给定A0, A1 和 A2, 计算A99

输入包含多行数据
每行数据包含3个整数A0, A1, A2 (0 <= A0, A1, A2 <= 100000000)
数据以EOF结束

输出
对于输入的每一行输出A99的值
样例输入
1 1 1
样例输出
69087442470169316923566147

         题意就不说了,只管算就中了,这是我用java水我们oj上最后一道大数的题。

     java代码:

import java.math.*;
import java.util.*;
public class Main{
	  public static void main(String[]args){
		   Scanner in=new Scanner(System.in);
		   BigInteger a=null;
		   BigInteger b=null;
		   BigInteger c=null;
		   BigInteger d=null;
		    while(in.hasNextBigInteger())
		    {     a=in.nextBigInteger();
		          b=in.nextBigInteger();
		          c=in.nextBigInteger();
		          for(int i=3;i<=99;i++)
		          {    d=a.add(b).add(c);
		                a=b;
		                b=c;
		                c=d;
		           }
		          System.out.println(d);
		    	}
		    }
	  }


c++代码:

 
#include<iostream>
#include<string.h>
#include<string>
using namespace std;
int a[50],b[50],c[50],d[50];
int main()
{  string s,s1,s2;
   while(cin>>s>>s1>>s2)
   {   memset(a,0,sizeof(a));
       memset(b,0,sizeof(b));
	   memset(c,0,sizeof(c));
	   memset(d,0,sizeof(d));
	   for(int i=0,j=s.size()-1;j>=0;++i,--j)
            a[i]=s[j]-'0';
        for(int i=0,j=s1.size()-1;j>=0;++i,--j)
            b[i]=s1[j]-'0';
        for(int i=0,j=s2.size()-1;j>=0;++i,--j)
            c[i]=s2[j]-'0';
		  for(int i=0;i<=96;++i)
		  {  int k=0;
		     for(int j=0;j<50;++j)
			 {  d[j]=a[j]+b[j]+c[j]+k;
			     k=d[j]/10;
				 d[j]%=10;
			 }
			 for(int j=0;j<50;++j)
			 {  a[j]=b[j];
			    b[j]=c[j];
				c[j]=d[j];
			 }
		  }
		  int  flag=0,t;
           for(int i=49;i>=0;--i)
			   if(d[i]) {flag=1;t=i;break;}
			   if(!flag) cout<<"0"<<endl;  
			   else{
				     for(int i=t;i>=0;--i)
				       cout<<d[i];
			           cout<<endl;
			      }
       }return 0;
}
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值