一家人(family)

题目描述

最近小明交了一个新朋友叫小宇,他们在聊天的时候发现500年前他们竟然是一家人!现在小明想知道小宇是他的长辈,晚辈,还是兄弟。

输入

输入包含多组测试数据。每组首先输入一个整数N(N<=10),接下来N行,每行输入两个整数a和b,表示a的父亲是b(1<=a,b<=20)。小明的编号为1,小宇的编号为2。
输入数据保证每个人只有一个父亲。

输出

对于每组输入,如果小宇是小明的晚辈,则输出“You are my younger”,如果小宇是小明的长辈,则输出“You are my elder”,如果是同辈则输出“You are my brother”。

样例输入

5
1 3
2 4
3 5
4 6
5 6
6
1 3
2 4
3 5
4 6
5 7
6 7

样例输出

You are my elder

You are my brother

思路:
  这道题目的数据是a的b关系。(多组数据,这是个坑!)
纯模拟。
再按照判断即可。
如果小宇是小明的晚辈,则输出“You are my younger”,
如果小宇是小明的长辈,则输出“You are my elder”,
如果是同辈则输出“You are my brother”。
  开两个数组存储a与b的状态比较。
也可以用链表向上查找。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int a[105];
int main(){
    int n;
    while(cin>>n){
        for(int i=1;i<=100;i++)
            a[i]=i;
        for(int i=1;i<=n;i++){
            int x,y;
            cin>>x>>y;
            a[x]=y;
        }
        int s1=0;
        for(int i=1;i!=a[i];i=a[i])s1++;
        int s2=0;
        for(int i=2;i!=a[i];i=a[i])s2++;
        if(s1>s2)cout<<"You are my elder"<<endl;
        else if(s1==s2)cout<<"You are my brother"<<endl;
        else cout<<"You are my younger"<<endl;
    }
    return 0;
}

  

OVER!
 
posted @   DATA-P  阅读(700)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
阅读排行:
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络
点击右上角即可分享
微信分享提示