杭电1005题

错误的答案:内存挂了。


#include<iostream>
#include<string>

using namespace std;

int function(int i, int j, int k)
{
	if( 1 == k || 2 == k)
	{
		return 1;
	}
	
	return (function(i, j , k - 1) * i + function(i, j , k-2) * j)%7;
}


int main()
{
	int iFirst, iSecond, iThird;
	while(cin >> iFirst >> iSecond >> iThird )
	{
		if(iFirst == 0 && iSecond == 0 && 0 == iThird)
		{
			return 0;
		}
		
		cout << function(iFirst, iSecond, iThird) << endl;;
	}


	return 0;
}


错误答案:时间超了

#include<iostream>

using namespace std;

int main()
{
	int iFirst, iSecond, iThird;
	while(cin >> iFirst >> iSecond >> iThird )
	{
		if(iFirst == 0 && iSecond == 0 && 0 == iThird)
		{
			return 0;
		}
		
		if(iThird <= 2)
		{
			cout << "1" << endl;
		}
		else
		{

			int iFormer = 1;
			int iMid = 1, iLater;
			for(int i = 3 ; i <= iThird; i++)
			{
									
				iLater = ( iFormer*iSecond + iMid*iFirst )%7;
				//cout << i << " : " << iLater <<endl;
				iFormer = iMid;
				iMid = iLater;
			}
		
			cout << iLater << endl;
		}
	}
	return 0;
}


题目:点击打开链接

参考答案:点击打开链接

思路:点击打开链接

你可能感兴趣的:(杭电1005题)