No older revisions available
No older revisions available
~cpp
#include <iostream>
#include "BigInteger.h"
using BigMath::BigInteger;
char start[101], end[101];
BigInteger decimalNum=10;
BigInteger fibNum[501];
int i, counting;
void FibInit()
{
fibNum[1] = 1;
fibNum[2] = 2;
for(i=3; i<501; i++)
fibNum[i] = fibNum[i-1]+ fibNum[i-2];
}
int output(BigInteger startNum, BigInteger endNum)
{
counting=0;
for(i=1; i<501; i++)
if(fibNum[i]>=startNum && fibNum[i]<=endNum)
counting++;
return counting;
}
BigInteger convertBig(char *number)
{
BigInteger temp;
int charLen = strlen(number);
for(i=0; i<charLen; i++)
temp = temp + (*(number++)-48)*decimalNum.Power(charLen-i-1);
return temp;
}
int main()
{
FibInit();
while(cin>>start>>end)
{
if(start[0] == '0' && end[0] =='0')
break;
cout << output(convertBig(start), convertBig(end)) << endl;
}
return 0;
}