有一个研究团队,团队分成许多研究小组,每个小组可能再分成小组,求自己及自己带领的小组有多少人

/*研究小组找自己的所处小组有多少组员,类似树状结构   (树形结构如下图)
 * 用例参考   Input 6  (表示6个人)
 *                   0 1 2 1 2 2 (0表示自己是老大,1表示自己的BOSS是1号)
 *             Output 6 4 1 1 1 1
 * */

import java.util.*;

public class hd02 {
    static void manageNum(int a[],int n)
    {
        int b[]=new int [n+1];
        for(int i=1;i<n+1;i++)
            b[i]=1;
        for(int i=1;i<n+1;i++)
        {
            if(a[i]==0)
                continue;
            else                /* b[i]是专门来存储员工的人数    */
            {
                int k=i;
                while(a[k]!=0)
                {
                    int j=a[k];        /*a[k]是用来找到第k个人的头*/
                    b[j]++;                /*在b[i]中++是来表示人头数+1*/
                    k=j;                /*看第j个位置上面还有没有头*/
                }
            }
        }
        for(int i=1;i<n+1;i++)
            System.out.print(b[i]);
    }
    public static void main(String[] args) {
         System.out.print("输入团队的总人数:");
         Scanner input=new Scanner(System.in);
         int n=input.nextInt();
         int a[]=new int [n+1];
         for(int i=1;i<n+1;i++)
             a[i]=input.nextInt();
         manageNum(a,n);
         System.exit(0);
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值