华为机试:图片处理、挑7

来源:互联网 发布:iphone展示机软件 编辑:程序博客网 时间:2024/05/23 15:19

1.图片处理

题目描述

Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。

输入描述:

Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。

输出描述:

Lily的所有图片按照从小到大的顺序输出

示例1

输入

Ihave1nose2hands10fingers

输出

0112Iaadeeefghhinnnorsssv

解法1:通过冒泡比较来实现排序过程

import java.util.Scanner;public class Text2 {/* * 注意:1:不加sc.hasNext()为错误,因为它可能是持续输入 * 2:结尾处不加System.out.println();也是通不过测试用例的 * */public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){String str=sc.nextLine();char arr[]=str.toCharArray();for(int i=0;i<arr.length-1;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]>arr[j]){char temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}}for(int i=0;i<arr.length;i++){System.out.print(arr[i]);}System.out.println();}}}

解法2:通过Arrays.sort方法来实现

import java.util.*;public class Main{    public static void main(String[] args){        Scanner in = new Scanner(System.in);        while(in.hasNext()){            String s = in.nextLine();            char [] str = s.toCharArray();            Arrays.sort(str);            System.out.println(str);        }    }}

2.挑7

题目描述

输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数 

输入描述:

一个正整数N。(N不大于30000)

输出描述:

不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.

示例1

输入

20

输出

3
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();int cur=0;for(int i=1;i<=n;i++){if(i%7==0){cur++;//执行continue后就不会执行本次while后面的语句了,保证不重复continue;}int j=i;while(j!=0){int temp=j%10;if(temp==7){cur++;break;}j=j/10;}}System.out.println(cur);}}}