U E D R , A S I H C RSS

How Many Fibs?/하기웅

~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;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:25
Processing time 0.0063 sec