void find_discord_couple(int* data, int count, int& x, int& y)
{
for(int i = 1; i < count; ++i)
{
if(data[i] - data[0] > y - x)
{
y = data[i];
x = data[0];
}
}
if (count > 2) find_discord_couple(data + 1, count - 1, x, y);
}
int main(void)
{
int data[] = { 6, 15, 9, 7, 20, 3, 5, 19, 1, 12, };
int x, y;
find_discord_couple(data, sizeof(data) / sizeof(data[0]), x = data[0], y = data[1]);
cout << "x = " << x << " y = " << y << endl;
return 0;
}
또 다른 방법. 재귀 숙제인데 for 쓰는게 웃겨서
void find_discord_forward(int* data, int count, int right, int& x, int& y)
{
if(data[right] - data[0] > y - x)
{
y = data[right];
x = data[0];
}
if(right < count - 1) find_discord_forward(data, count, right + 1, x, y);
if(count > 2 && right == 1) find_discord_forward(data + 1, count - 1, 1, x, y);
}
int main(void)
{
int data[] = { 6, 15, 9, 7, 20, 3, 5, 19, 1, 12, };
int x, y;
find_discord_forward(data, sizeof(data) / sizeof(data[0]), 1, x = data[0], y = data[1]);
cout << "x = " << x << " y = " << y << endl;
return 0;
}
알고리즘 되게 간단하시네;;;;;; ㅠㅠ 분석좀하고올게여~
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.