/*xun hui zhi huan suan fa:
i=1,2,3,4,5,6,7;
p[i]=4,7,3,1,2,5,6;
when k in [1...n]
k=p[...p[k]...]
when k=1,p[1]=4,p[4]=1
when k=2,p[2]=7,p[7]=6,p[6]=5,p[5]=2
when k=3,p[3]=3
when k=4,p[4]=1,p[1]=4
...
when k=7,p[7]=6,p[6]=5,p[5]=2,p[2]=7 */
main()
{int x,k;
int p[]={4,7,3,1,2,5,6};
/* system("cls"); */
clrscr();
for(k=1;k<=7;k++)
{x=k;
printf("\n when k=%d,",x);
do
{
printf("p[%d]=%d,",x,p[x-1]);
x=p[x-1];
}while(x!=k);/* while(x!=p[x-1]) 此时的p[x-1]同上一部的p[x-1]不同,因为x变化了,所以比用(x!=k)会提前一步结束do-while循环 */
};
getch();
}