題目:
今天小明開學,很高興見到新同學,想找到自己的老鄉。可是這裡有個奇怪的規則,當問某一個同學時,該同學隻能說是某某同學的老鄉。進而間接知道哪些同學是自己的老鄉。
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;
}