Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- N=1234;/*N as in N'th Fibonacci-number*/
- base=10;/*Number base, from 2 up to 16*/
- /*End_of_setting_variables*/
- digitsStr='0123456789ABCDEF';
- bpe=0;
- for(bpe=0;(1<<(bpe+1))>(1<<bpe);bpe++);
- bpe>>=1;
- mask=(1<<bpe)-1;
- radix=mask+1;
- x=[1];
- y=[0];
- function add_(x,y){
- var i,c,k,kk;k=x.length<y.length?x.length:y.length;
- for(c=0,i=0;i<k;i++){
- c+=x[i]+y[i];
- x[i]=c&mask;
- c>>=bpe;
- }
- for (i=k;c&&i<x.length;i++){
- c+=x[i];
- x[i]=c&mask;
- c>>=bpe;
- }
- if(!!c)
- x.push(c);
- }
- function isZero(x){
- var i;
- for(i=0;i<x.length;i++)
- if(x[i])
- return 0;
- return 1;
- }
- function divInt_(x,n){
- var i,r=0,s;
- for(i=x.length-1;i>=0;i--){
- s=r*radix+x[i];
- x[i]=Math.floor(s/n);
- r=s%n;
- }
- return r;
- }
- s6=[0];
- function bigInt2str(x,base){
- var i,t,s="";
- s6=x.slice();
- while(!isZero(s6)){
- t=divInt_(s6,base);
- s=digitsStr.substring(t,t+1)+s;
- }
- var ans="";
- if (s.length==0)
- ans="0";
- else{
- i=0;
- k=0;
- for(i=0;i<s.length;i++)
- {
- ans+=s[i];
- if((i+1)%8==0)
- ans+=" ";
- }
- }
- return ans;
- }
- for(i=1;i<N;i++){
- t=x.slice();
- add_(x,y);
- y=t;
- };
- "F("+N+") = <br><br>"+bigInt2str(x,base)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement