360筆試題——找老鄉

題目:

今天小明開學,很高興見到新同學,想找到自己的老鄉。可是這裏有個奇怪的規則,當問某一個同學時,該同學只能說是某某同學的老鄉。從而間接知道哪些同學是自己的老鄉。

e.g.

如果小明班上有10名同學,(可用一個一維的數組表示,10個元素;下標爲10個同學,對應的值爲對應的一個老鄉)問其他同學的結果爲:

0,1,2,3,4,5,6,7,8,9      // 10個同學

0,9,8,7,2,7,8,5,0,4      // 對應的一個老鄉

注:0表示小明。

#include <iostream>
using namespace std;
void fn(int a[], int b[], int t)
{
	for (int i = 1; i < 10; i++)
	{
		if (a[i] == t)
		{			
			b[i] = i;
			fn(a, b, b[i]);
		}
	}
}
void main()
{
	int a[10] = { 0, 9, 8, 7, 2, 7, 8, 5, 0, 4 };
	int b[10] = { 0 };
	for (int i = 1; i < 10; i++)
	{
		b[i] = 10;
	}
	int cnt = 0;
	fn(a, b, a[0]);
	for (int i = 1; i < 10; i++)
	{
		if (b[i] != 10)
		{
			cout << i << ' ';
			cnt++;
		}
			
	}
	cout << endl << cnt << endl;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章