首页 > 编程语言 >蓝桥杯 ALGO-50算法训练 数组查找及替换

蓝桥杯 ALGO-50算法训练 数组查找及替换

时间:2022-12-02 21:03:17浏览次数:49  
标签:arr temp nums int 元素 50 蓝桥 ALGO 数组


问题描述
  给定某整数数组和某一整数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" : " ");
}
}
}
}


标签:arr,temp,nums,int,元素,50,蓝桥,ALGO,数组
From: https://blog.51cto.com/linmengmeng/5907461

相关文章

  • 蓝桥杯算法学习整理
    报名了蓝桥杯,但是对于算法的基础却不是很好,收集了一些学习的链接,以下链接都是转载自别人名下的博客文章,如果博主介意的话,请通知我立即删除。供日后复习时使用:前部分是摘......
  • 蓝桥杯 ALGO-47算法训练 蜜蜂飞舞
    时间限制:1.0s内存限制:512.0MB问题描述“两只小蜜蜂呀,飞在花丛中呀……”话说这天天上飞舞着两只蜜蜂,它们在跳一种奇怪的舞蹈。用一个空间直角坐标系来描述这个......
  • 蓝桥杯 ALGO-54算法训练 简单加法(基本型)
    时间限制:1.0s内存限制:512.0MB问题描述首先给出简单加法算式的定义:如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为......
  • 蓝桥杯 ALGO-57算法训练 删除多余括号
    时间限制:1.0s内存限制:512.0MB问题描述从键盘输入一个含有括号的四则运算表达式,要求去掉可能含有的多余的括号,结果要保持原表达式中变量和运算符的相对位置不变,且与......
  • java经典笔试题大全(50道含答案)
         java经典笔试题大全(50道含答案)    整理了一套常用的Java笔试题,选择题50道,简答题5道,试试你能做对多少题吧,含答案。选择题(共50题,每题1.5分,共75......
  • 蓝桥杯 ALGO-31算法训练 开心的金明
    时间限制:1.0s内存限制:256.0MB关键字:01背包动态规划问题描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,......
  • 蓝桥杯 ALGO-30算法训练 入学考试
    时间限制:1.0s内存限制:256.0MB关键字:0/1背包动态规划问题描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。......
  • 蓝桥杯 ALGO-29算法训练 校门外的树
    时间限制:1.0s内存限制:256.0MB关键字:区间处理问题描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的......
  • 蓝桥杯 ADV-103算法提高 逆序排列
    关键字循环语句数组操作问题描述编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中。当用户输入0时,表示输入结束。然后程序将把这个数组中的值按......
  • 蓝桥杯 ALGO-40算法训练 会议中心 (APIO 2009)
    时间限制:2.0s内存限制:512.0MB关键字:APIO2009会议中心Siruseri政府建造了一座新的会议中心。许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议。......