@ 16. 1 ~ 17. 1/C++

369숫자를 찾아 *로 표시하기

namoeye 2013. 2. 18. 23:23

숫자를 입력하고..369의 숫자만큼 *로 표시하는것..클래스로 구현...

200제 풀다가 ..생각나는것들은 올리는 중..그냥 뭐 그렇다고..ㅜㅜ

 

 

#include <iostream>   
#include <conio.h>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;

class ThreeSixNine
{
private:
	int num;
public:
	ThreeSixNine(int num);
	int GetSize(int num);
	bool Search(int num);
	int Test369(int num);
	void ShowData();
};

int main()
{
	ThreeSixNine t(100);
	t.ShowData();
	getch();
	return 0;
}

ThreeSixNine::ThreeSixNine(int num)
{
	this->num=num;
}

int ThreeSixNine::GetSize(int num)
{
	int count=0;
	while(num!=0)
	{
		num=num/10;
		count++;
	}
	return count;
}

bool ThreeSixNine::Search(int num)
{
	if((num!=0) && (num%3==0))
	{
		return true;
	}
	else
		return false;
}

int ThreeSixNine::Test369(int num)
{
	int result=0;
	int count=GetSize(num);
	for(int i=0;i<count;i++)
	{
		if(Search(num%10))
		{
			result++;
		}
		num=num/10;
	}
	return result;
}

void ThreeSixNine::ShowData()
{
	for(int i=0;i<num;i++)
	{
		if(Test369(i))
		{
			for(int j=0;j<(Test369(i));j++)
			{
				cout << "*" ;
			}
			cout << "\t" ;
		}
		else
		cout << "\t" << i << "\t" ;
	}
}