算法训练 数组查找及替换
时间限制:1.0s 内存限制:512.0MB
问题描述
给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。
输入格式
第一行为数组元素个数和整数b
第二行为数组各个元素
第二行为数组各个元素
输出格式
按照要求输出
样例输入
7 2
77 11 66 22 44 33 55
样例输出
11 33 55 M
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); int a[]=new int[n]; for(int i=0;i<n;i++) a[i]=sc.nextInt(); int i,j; for(i=0;i<n;i++){ if(a[i]%m==0){ for(j=i;j<n-1;j++) a[j]=a[j+1]; //删除能整除M的数后,后面的数往前移一位 n--; //删除后n要减一。(个数减少了) i--; //for()中i++,因为后面的数前移一位,下次判断还要从这个位置开始,所以这里i要减去1. } } Arrays.sort(a,0,n); for(i=0;i<n;i++){ if(a[i]>=65 && a[i]<=90) System.out.printf("%c ",a[i]); else System.out.print(a[i]+" "); } System.out.println(); } }