第一行输入一个正整数n(1<=n<=100000),表示有n节课 接下来一行输入n个正整数a1,a2,...,an每个数表示一节

2025-04-26 12:45:54
推荐回答(3个)
回答1:

#include

#define STRLEN 100

void ifree(char**p,int i);

int CheckAndChange(char*p);

int main()

{

int T;/*样例个数*/

int i;/*循环参数*/

char**p=NULL;/*指针p指向的内存空间存放指向各个字符串的指针*/




开放源代码:

您购买或下载的大多数软件只提供已编译的可运行版本。“已编译”意味着开发人员创建的实际程序代码(称为源代码)已经由一个称为编译器的特殊程序进行过处理,该程序将源代码转换为计算机可以理解的格式。

回答2:

public class Test{

/**
* @param args
*/
public static void main(String[] args) {
boolean isOver=true;
boolean isNeedTip=true; //是否需要提示,如果不需要设为false;
ArrayList numList=new ArrayList();
ArrayList checkNumList=new ArrayList();
Scanner in=new Scanner(System.in);
BufferedReader strIn=new BufferedReader(new InputStreamReader(System.in));
if(isNeedTip){
System.out.print("请输入一个正整数:");
}
int classNum=in.nextInt();

try {
if(isNeedTip){
System.out.print("请输入"+classNum+"个整数:");
}
String everTime = strIn.readLine();
String[] everTimes=everTime.split(" ");
for(int i=0;i numList.add(Integer.valueOf(everTimes[i]));
}

if(isNeedTip){
System.out.print("请输入查询次数:");
}
int checkNum=in.nextInt();

if(isNeedTip){
System.out.print("请分别输入每次查询的值:");
}
String everyCheckNum=strIn.readLine();
String[] everyCheckNums=everyCheckNum.split(" ");
for(int i=0;i checkNumList.add(Integer.valueOf(everyCheckNums[i]));
}
System.out.println();

if(isNeedTip){
System.out.println("查询结果:");
}
for(Integer integer:checkNumList){
int temp=0;
for(Integer integer2:numList){
if(integer2>=integer){
temp++;
}
}
System.out.println(temp);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

回答3:

先排序,再二分查找(m*log(n)+n*log(n))