이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•
2008/09/05 에 ν’€μ—ˆλ˜ λ¬Έμ œλ„€μš” :)


#include 
#include 
#include 
#include 
//#include 
//#include 

using namespace std;


set< int > setInteger;

string intToString(int nInput);

//string ν˜•μ„ λ°›μ•„μ„œ panDigit이 λ˜μ—ˆλŠ”μ§€ μ•„λ‹Œμ§€ 확인
bool isPanDigit(string x, string y, string strResult);
int main()
{

	int i,j;


	//μ •λ‹΅ μ €μž₯
	int nResult = 0;


	for( i = 1 ; i <= 100 ;i++ )
	{
		for( j = 1 ; j <= 10000 ;j++ )
		{
			
			// i  j   i*j
			if(isPanDigit(intToString(i),	intToString(j),	intToString(i*j) ) )
			{
				cout << "panDigit 발견 : " << i << " X " << j << " = " << i*j << endl;
				
				setInteger.insert(i*j);
			}
		}

	}

	//for(i = 0 ; i < setInteger.size() ; i++)
	for( set< int > :: iterator it = setInteger.begin() ; it != setInteger.end() ;it++ )
	{
		nResult += (*it);
	}
	cout << "μ€‘λ³΅μš”μ†Œ μ œκ±°ν•œ μ •λ‹΅ : " << nResult << endl;




	return 0;
}




//int -> string
string intToString(int nInput)
{
	// int λ₯Ό string 으둜 λ°”κΎΈκΈ° μ‹œμž‘

	char		szBuf[512];
	sprintf(szBuf,"%d",nInput);
	string		strTemp(szBuf);

	return strTemp;
	// int λ₯Ό string 으둜 λ°”κΎΈκΈ° 끝.
}


//string ν˜•μ„ λ°›μ•„μ„œ panDigit이 λ˜μ—ˆλŠ”μ§€ μ•„λ‹Œμ§€ 확인
bool isPanDigit(string x, string y, string strResult)
{
	int i;

	bool bPanDigit[10] = {false};

	// ex) X * Y = result μΌλ•Œ X의 문자길이 만큼 κ΅¬ν•œν›„..
	for(i = 0 ; i < x.size() ; i++)
	{
		if(bPanDigit[   x[i]-'0'  ]== true)
		{
			return false;
		}
		bPanDigit[   x[i]-'0'  ] = true; 
	}
	for(i = 0 ; i < y.size() ; i++)
	{
		if(bPanDigit[   y[i]-'0'  ]== true)
		{
			return false;
		}
		bPanDigit[   y[i]-'0'  ] = true; 
	}
	for(i = 0 ; i < strResult.size() ; i++)
	{
		if(bPanDigit[   strResult[i]-'0'  ]== true)
		{
			return false;
		}
		bPanDigit[   strResult[i]-'0'  ] = true; 
	}


	//λͺ¨λ“  배열이 true이면 true ν•˜λ‚˜λΌλ„ false 이면 false
	if(bPanDigit[0] == true)
	{
		return false;
	}
	for(i = 1 ; i < 10 ; i++)
	{
		if( bPanDigit[i] == false )
		{
			return false;
		}
	}

	return true;
	//
}
λ°˜μ‘ν˜•

+ Recent posts