题目:
今天小明开学,很高兴见到新同学,想找到自己的老乡。可是这里有个奇怪的规则,当问某一个同学时,该同学只能说是某某同学的老乡。从而间接知道哪些同学是自己的老乡。
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;
}