输入两个整数,比如
7 回车
15回车
在文件x.txt中找出相关区间
x中文件内容是
——
1
3
5
..
12
14
..
23
24
26
27
28
——
1
..
5
6
8
9
..
15
16
17
——
——是区间分隔符,..是内部分隔符上下之间大等于3即可
区间都是3层结构,分a,b,c,三段
区间长度,内部数据长度都不统一
根据7找a,b,c的最后一个数据是否是正负2差距
7+2,7-2,比如5=7-2,14=15-1满足就输出第一个区间
——
1
3
5
..
12
14
..
23
24
26
27
28
——
要输出区间
7对应在b,15对应在c,输出
7对应在a,15对应在b,输出
只有两种结果 abc,bca
不能跨界,比如7在a,15在c,ac~b,不成立
要求同时满足
然后输出整个区间
c语言,或者python都可以
c语言 算法 输入参数 找区间数据
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
24条回答
关注获得6.90元问题酬金 以下是用Python实现的代码,可以读取指定文件x.txt中的数据并进行查找:
# 读取文件内容 with open("x.txt", "r") as f: contents = f.readlines() # 去除每行末尾的换行符 contents = [line.strip() for line in contents] # 定义函数:判断一个数是否在指定区间内 def in_range(num, range_str): if num < int(range_str.split("..")[0]): return False if num > int(range_str.split("..")[1]): return False return True # 定义函数:获取指定区间内的数据 def get_data_in_range(data, range_str): range_start = int(range_str.split("..")[0]) range_end = int(range_str.split("..")[1]) data_in_range = [] for num in data: if in_range(num, range_str): data_in_range.append(num) return data_in_range # 输入两个数 num1 = int(input()) num2 = int(input()) # 查找符合条件的区间 for i in range(len(contents)): if contents[i] == "——": continue range_a = contents[i].split(" ")[-1] # 区间a range_b = contents[i+1].split(" ")[-1] # 区间b range_c = contents[i+2].split(" ")[-1] # 区间c data_a = contents[i+1].split(" ")[:-1] # 区间a内的数据 data_b = contents[i+2].split(" ")[:-1] # 区间b内的数据 data_c = contents[i+3].split(" ")[:-1] # 区间c内的数据 # 判断符不符合条件 if abs(int(data_a[-1])-num1) != 2 or abs(int(data_b[-1])-num2) != 2: continue if in_range(num1+2, range_b) and in_range(num2-2, range_c): print("abc:") print(contents[i:i+4]) print(get_data_in_range(data_a, range_a)) print(get_data_in_range(data_b, range_b)) print(get_data_in_range(data_c, range_c)) elif in_range(num1+2, range_c) and in_range(num2-2, range_b): print("bca:") print(contents[i:i+4]) print(get_data_in_range(data_b, range_b)) print(get_data_in_range(data_c, range_c)) print(get_data_in_range(data_a, range_a))代码中使用了两个函数,
in_range函数用于判断一个数是否在指定区间内,get_data_in_range函数用于获取指定区间内的数据。在判断符不符合条件时,先判断区间a对应的数据与第一个输入的数之间是否是正负2差距,再判断区间b和区间c对应的数据是否分别包含第二个输入的数加减2后的结果。如果符合条件,则输出符合条件的区间以及内部的数据。
评论 打赏 举报解决 1无用