一个班级男生和女生数量相同,老师要求男生女生进行排队,男生全部排在队列前面,女生紧跟着排在男生队列后面,形成一个队列,现在要求男生女生交叉排列并且第一位是男生,且每个人在在原队列中的顺序不变,如何来做?
要求:
交叉前:队列[男1,男2,男3,男4…男n,女1,女2,女3,女4…女n]
交叉后:队列[男1,女1,男2,女2,男3,女3,男4,女4…男n,女n]
一个班级男生和女生数量相同,老师要求男生女生进行排队,男生全部排在队列前面,女生紧跟着排在男生队列后面,形成一个队列,现在要求男生女生交叉排列并且第一位是男生,且每个人在在原队列中的顺序不变,如何来做?
要求:
交叉前:队列[男1,男2,男3,男4…男n,女1,女2,女3,女4…女n]
交叉后:队列[男1,女1,男2,女2,男3,女3,男4,女4…男n,女n]
输入第一行一个整数 n 表示有 n 个男生和 n 个女生第 2 到第 n+1 行每一行有一个数字表示每个男生的编号第 n+2 到第 2*n+1 行每一行有一个数字表示每个女生的编号
输出 2*n 行,每行一个名字表示交叉排列后队列中依次每个学生的编号
3 1 2 3 4 5 6
1 4 2 5 3 6
男【1,2,3】+女【4,5,6】。交叉后变为:【1,4,2,5,3,6】
,每个学生的标号互不相同,并且标号 x 满足:
import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int size = 2*n; ArrayList<Integer> list = new ArrayList<Integer>(2*n); int[] arr = new int[n]; int[] brr = new int[n]; for (int i = 0; i <n; i++) { arr[i] = sc.nextInt(); } for (int i = 0; i <n; i++) { brr[i] = sc.nextInt(); } for (int i=0,j=0,k=0; k<size;k++) { if(k%2==0) {//偶数位 System.out.println(arr[i]); i++; } else { System.out.println(brr[j]); j++; } } sc.close(); } }
def sort(): get_input = [] while True: try: get_input.append(int(input())) except: break nums = get_input[0] student = get_input[1:] for i in range(0, int(len(student)/2)): print(student[i]) print(student[i + nums]) if __name__ == '__main__': sort()
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[] result=new int[2*n]; for(int i=0;i<n;i++){ result[i*2]=sc.nextInt(); } for(int i=0;i<n;i++){ result[i*2+1]=sc.nextInt(); } for(int i:result){ System.out.println(i); } } }
不用两个数组倒腾来倒腾去,直接一个结果数组,男生下标是i*2,女生是i*2+1就行
input_number = int(input("输入数字n\n")) person_number = 2 * input_number person_number_list = list(range(1, person_number + 1)) print("交叉排列前:") for i in person_number_list: print(i) boy_list = person_number_list[:input_number] girl_list = person_number_list[input_number:] cross_list = [None] * person_number boylist_index = [b * 2 for b in range(input_number)] girllist_index = [(g * 2) - 1 for g in range(1, input_number + 1)] for b, boy_num in zip(boylist_index, boy_list): cross_list[b] = boy_num for g, girl_num in zip(girllist_index, girl_list): cross_list[g] = girl_num print(f'男生索引是{boylist_index},女生索引是{girllist_index},交叉后变为{cross_list}')
lst = [] try: while True: lst.append(int(input())) except: pass s = lst[0] for i in range(1,s+1): print(lst[i],lst[i+s], sep="\n")
#include<iostream> using namespace std; int main(){ int n; cin>>n; int a[n],b[n],c[2*n]; for(int i=0;i<n;i++){ int val; cin>>val; a[i]=val; } for(int i=0;i<n;i++){ int val; cin>>val; b[i]=val; } for(int i=0;i<2*n;i++){ if(i%2==0){ c[i]=a[i/2]; } else{ c[i]=b[(i-1)/2]; } } for(int i=0;i<2*n;i++){ cout<<c[i]<<endl; } }
n = int(input()) s = [] for i in range(2*n): s = s + [int(input())] for i in range(n): print(s[i]) print(s[i + n])为啥超时呀,真奇怪