蓝桥杯 ALGO-50算法训练 数组查找及替换
2018-03-29 16:03
309 查看
问题描述
给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。
输入格式
第一行为数组元素个数和整数b
第二行为数组各个元素
输出格式
按照要求输出
样例输入
7 2
77 11 66 22 44 33 55
样例输出
11 33 55 M
【分析】根据题意,首先需要先遍历数组元素,找出不能被b整除的数,由于新的数组元素的数目具有不确定性,因此适合用集合来存贮符合条件的数值,接下来对集合元素进行排序(用Collection.sort()),然后找出元素在A-Z之间的数值,转换成字母输出即可
【参考代码】
C++
C:
Java:
给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。
输入格式
第一行为数组元素个数和整数b
第二行为数组各个元素
输出格式
按照要求输出
样例输入
7 2
77 11 66 22 44 33 55
样例输出
11 33 55 M
【分析】根据题意,首先需要先遍历数组元素,找出不能被b整除的数,由于新的数组元素的数目具有不确定性,因此适合用集合来存贮符合条件的数值,接下来对集合元素进行排序(用Collection.sort()),然后找出元素在A-Z之间的数值,转换成字母输出即可
【参考代码】
C++
#include<iostream> #include<algorithm> using namespace std; int arr[100]; int main() { int n,b; int i,j; cin>>n>>b; for(i=0;i<n;i++) { cin>>arr[i]; if(arr[i]%b==0) arr[i]=0; } sort(arr,arr+n); for(i=0;i<n;i++) { if(arr[i]) { if(arr[i]>=65 &&arr[i]<=90) { cout<<char(arr[i])<<" "; } else cout<<arr[i]<<" "; } } return 0; }
C:
#include <stdio.h> #include <stdlib.h> void del(int a[],int *len,int m) { int i,j; for(i=0;i<*len;i++) if(a[i]%m==0) { for(j=i;j<*len;j++) a[j]=a[j+1]; (*len)--; i--; } } int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main() { int a[101]={},i,m,n; scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); del(a,&n,m); qsort(a,n,sizeof(a[0]),cmp); for(i=0;i<n;i++) { if(a[i]>=65&&a[i]<=90) printf("%c ",a[i]); else printf("%d ",a[i]); } return 0; }
Java:
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); int b = scanner.nextInt(); List<Integer> nums = new ArrayList<>(); for (int i = 0; i < n; i++) { int temp = scanner.nextInt(); if (temp % b != 0) { nums.add(temp); } } Collections.sort(nums); for (int i = 0; i < nums.size(); i++) { if (nums.get(i) >= 'A' && nums.get(i) <= 'Z') { int temp = nums.get(i); char ch = (char) temp; System.out.print(ch); } else { System.out.print(nums.get(i)); } System.out.print(i == nums.size() - 1 ? "\r\n" : " "); } } } }
相关文章推荐
- 蓝桥杯 ALGO-50 算法训练 数组查找及替换
- [ALGO-50] 数组查找及替换
- 算法训练 数组查找及替换
- 算法训练 数组查找及替换
- 算法训练 数组查找及替换
- 蓝桥杯 ALGO-49 算法训练 寻找数组中最大值
- 蓝桥杯--算法训练之ALGO-79 删除数组零元素
- 蓝桥杯 ALGO-79 算法训练 删除数组零元素
- 蓝桥杯 ALGO-39 算法训练 数组排序去重
- 蓝桥杯练习系统-数组查找及替换(不定长数组)
- 蓝桥杯--算法训练之ALGO-49 寻找数组中最大值
- 蓝桥杯 ALGO-39 算法训练 数组排序去重
- 算法训练 数组查找及替换
- 算法训练 数组查找及替换
- 蓝桥杯 ALGO-49 算法训练 寻找数组中最大值
- 算法训练 数组查找及替换
- 蓝桥杯ALGO-39——算法训练 数组排序去重
- 蓝桥杯_算法训练_ALGO10_集合运算
- 蓝桥杯 ALGO-53 算法训练 最小乘积(基本型)
- 蓝桥杯 ALGO-73 算法训练 统计字符次数