~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; }