当前位置: 代码迷 >> 综合 >> Codeup1032-1033
  详细解决方案

Codeup1032-1033

热度:95   发布时间:2024-03-08 15:12:10.0

1032: 一家人

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
最近小明交了一个新朋友叫小宇,他们在聊天的时候发现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”。
样例输入 Copy
5
1 3
2 4
3 5
4 6
5 6
6
1 3
2 4
3 5
4 6
5 7
6 7
样例输出 Copy
You are my elder
You are my brother

while True:a = []n = int(input())for i in range(0, n + 1):a.append('0')for i in range(0, n):lst = input().split()x = int(lst[0])y = int(lst[1])a[x] = ycnt1 = 0cnt2 = 0i = 1while i != n + 1:i = a[i]cnt1 += 1i = 2while i != n + 1:i = a[i]cnt2 += 1if cnt1 > cnt2:print('You are my elder')elif cnt1 < cnt2:print('You are my younger')else:print('You are my brother')

1033: 子网掩码

输入
输入的第一行是本机IP地址;
第二行是子网掩码;
第三行是一个整数N,表示后面有N个IP地址;
接下来N行:
第1个IP地址


第N个IP地址
输出
计算并输出N个IP地址是否与本机在同一子网内。对于在同一子网的输出“INNER”,对于在不同子网的输出“OUTER”。
样例输入 Copy
192.168.0.1
255.255.255.0
3
192.168.0.2
192.168.0.254
192.168.1.2
样例输出 Copy
INNER
INNER
OUTER

def Binary(dec):	#sdecade->binaryb = []for i in range(0, len(dec)):n = int(dec[i])b.append(bin(n).replace('0b', ''))#print('******', b)return bdef Bit_Cal(a, b):c = []for i in range(0, 4):c.append(int(a[i], 2) & int(b[i], 2))#print("---------", c)return chost = input('host ip: ').split('.')	#host ip
#print('host:', host)
mask = input('subnet mask: ').split('.')	#subnet mask
#print('mask:', mask)
bihost = Binary(host)
#print("bihost : ", bihost)
bimask = Binary(mask)
#print("bimask : ", bimask)lst = Bit_Cal(bihost, bimask)n = int(input())
for i in range(0, n):ip = Binary(input().split('.'))x = Bit_Cal(ip, bimask)if x == lst:print('INNER')else:print('OUTER')
''' 完成n个IP地址输入后,再进行输出 ip = [] lst = []n = int(input()) for i in range(0, n):ip.append(input().split('.'))lst.append(Bit_Cal(bihost, bimask))b = [] for i in range(0, n):tmp = []for j in range(0, len(ip[i])):p = int(ip[i][j])tmp.append(bin(p).replace('0b', ''))b.append(tmp) for i in range(0, cnt):lst.append(Bit_Cal(b[i], bimask))if lst[i + 1] == lst[0]:print("INNER")else:print('OUTER') '''