首先定义输入输出
static BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter cout = new BufferedWriter(new OutputStreamWriter(System.out));
使用方法如下:
String[] firstline = cin.readLine().split(" "); String[] secondline = cin.readLine().split(" ");
注意这个函数读入进来的是一个字符串,我们需要对其做分割。分割之后再对每个String做parseInt转成整数。
对于输出也只能输出字符串,如果需要输出一个数字,则需要+“”以转成字符串。最后记得把cin和cout全部close掉。
cout.write(ans+""); cin.close(); cout.close();
下面看一道例题,对输入数据进行快速排序,然后输出第K位数据
acwing786
输入用例:
5 3 1 2 4 5
import java.util.*; import java.io.*; class Main{ static int N = 100010; static BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter cout = new BufferedWriter(new OutputStreamWriter(System.out)); public static void quickSort(int[] arr, int l, int r){ if(l >= r) return; int i = l - 1, j = r + 1; int key = arr[l]; while(i < j){ while(arr[++i] < key); while(arr[--j] > key); if(i < j){ int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } } quickSort(arr, l, j); quickSort(arr, j + 1, r); } public static void main(String[] args) throws IOException{ int[] arr = new int[N]; String[] firstline = cin.readLine().split(" "); String[] secondline = cin.readLine().split(" "); int n = Integer.parseInt(firstline[0]); int k = Integer.parseInt(firstline[1]); for(int i = 0; i < n; i++){ arr[i] = Integer.parseInt(secondline[i]); } quickSort(arr, 0, n - 1); int ans = arr[k - 1]; cout.write(ans+""); cin.close(); cout.close(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)