团体程序设计天梯赛-练习集——L1-027 出租
程序员文章站
2022-06-07 09:51:47
...
L1-027 出租 (20 分)
下面是新浪微博上曾经很火的一张图:
一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。
本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。
输入格式:
输入在一行中给出一个由11位数字组成的手机号码。
输出格式:
为输入的号码生成代码的前两行,其中arr中的数字必须按递减顺序给出。
输入样例:
18013820100
输出样例:
int[] arr = new int[]{8,3,2,1,0};
int[] index = new int[]{3,0,4,3,1,0,2,4,3,4,4};
package com.PTA;
import java.util.ArrayList;
import java.util.Scanner;
public class 出租 {
public static void main(String[] args) {
// int[] arr = new int[]{8,2,1,0,3};
// int[] index = new int[]{2,0,3,2,4,0,1,3,2,3,3};
// String tel = "";
// for(int i:index){
// tel+= arr[i];
// }
// System.out.println("联系方式:"+tel);
Scanner in = new Scanner(System.in);
String str = in.next();
char[] charArray = str.toCharArray(); //把字符串转换为数组
int[] a = new int[11]; //把char数组的值存入a数组
int[] b = new int[11]; //对数组a去重
int[] c = new int[11]; //保存排好序的b数组
int[] d = new int[11]; //输出index
int k = 0;
// Arrays.sort(charArray); //对某一数组进行低到高的排序
for(int i = 0;i < charArray.length;i++){
a[i] = charArray[i]-48; //把char数组的值存入a数组
// System.out.println(a[i]);
b[a[i]]++;
}
System.out.printf("int[] arr = new int[]{"); //ArrayList:用来去掉最后一个多余的","
ArrayList list = new ArrayList<>(); //也可以使用字符串进行拼接,然后用subString去掉最后一个分隔符
for(int i = b.length-1;i >= 0 ;i--){
if(b[i] != 0){
list.add(i);
c[k++] = i; //保存从大到小排好序的b数组
//System.out.printf(i+",");
}
}
for(int i = 0 ;i<list.size();i++){
if(i<list.size()-1){
System.out.printf(list.get(i)+",");
}else{
System.out.print(list.get(i));
}
}
System.out.println("};");
for(int i=0;i<charArray.length;i++){
for(int j = 0;j < k;j++){
if(a[i]==c[j]){
d[i]=j;
}
}
}
// System.out.println(c.length);
System.out.printf("int[] index = new int[]{");
for(int i=0;i<c.length;i++){
if(i<c.length-1)
System.out.print(d[i]+",");
else
System.out.print(d[i]);
}
System.out.println("};");
}
}
也不知道你们能不能看懂,做了小半个下午才完成,啊,我太难了。好久好久没有刷题了,太没效率了。以后要加强才行鸭~
我是与其终,一个风起云涌的女孩子。
很高兴你能看到我的博客,希望能对你有所帮助。
上一篇: 7-2 出租(20 分)
下一篇: 7-5 六度空间