算法训练 数组查找及替换
时间限制: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();
}
}
---------------
跟着心走,可不可以没有不开心。
邮箱:dai25@foxmail.com
--------------------------------------