某华

题目描述

Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:

如22:twenty two,123:one hundred and twenty three。

说明:

数字为正整数,长度不超过九位,不考虑小数,转化结果为英文小写;

输出格式为twenty two;

非法数据请返回“error”;

关键字提示:and,billion,million,thousand,hundred。

方法原型:public static String parse(long num) 

输入描述:

输入一个long型整数

输出描述:

输出相应的英文写法

示例1

输入

2356

输出

two thousand three hundred and fifty six

 1 import java.util.*;
 2  public class Main {
 3     public static void main(String[] args) {
 4         Scanner sc=new Scanner(System.in);
 5         while(sc.hasNext()){//需考虑循环输入 而非单个输入
 6                 String n=sc.nextLine();
 7                 if (n.length()>9||n.contains(".")) {
 8                     System.out.println("error");
 9                 }
10                 else {
11                     int da=Integer.parseInt(n);
12                     System.out.println(defineOut(da));//按照百亿、百万、千进行讨论
13 
14                 }
15             }
16     }
17        //处理千以内的数
18     private static String defineOut3(int da) {
19         String[] num1= {"zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
20         String[] num2 = { "ten", "eleven", "twelve", "thirteen", "fourteen",    "fifteen", "sixteen","seventeen", "eighteen", "nineteen" };
21         String[] num3 = { "","","twenty", "thirty", "forty", "fifty", "sixty",     "seventy", "eighty","ninety" };
22         String result="";
23         int bai=da/100;
24         int shi=da%100/10;
25         int ge=da%10;
26         if (bai!=0) {
27             result=num1[bai]+" "+"hundred and ";
28         }
29         if (shi!=0&&shi>=2) {
30             result=result+num3[shi];
31             if (ge!=0) {
32                 result=result+" "+num1[ge];
33             }
34         }else if(shi==0){
35 
36             result=result+num1[ge];
37         }
38         else{
39             result=result+num2[da%100-10];
40         }
41         return result;
42     }
43     private static String defineOut(int da) {
44         if (0<=da&&da<1000) {
45             return defineOut3(da);
46         }
47         else if (1000<=da&&da<1000000) {
48            
49             return defineOut6(da);
50         } 
51         else if (1000000<=da&&da<1000000000) {
52             return defineOut9(da);
53         }
54         return "error"; 
55     }
56       //将百亿化作百万与千以内的数进行处理
57     private static String defineOut9(int da) {
58          int num1=da/1000000;
59          int num2=da%1000000;
60          return defineOut3(num1)+" million "+defineOut6(num2);
61     }
62        //将百万化作两个千以内的数处理
63     private static String defineOut6(int da) {
64         int num1=da/1000;
65         int num2=da%1000;
66         return defineOut3(num1)+" thousand "+defineOut3(num2);
67     }
68 }

题目描述

写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:

输入一个有字母和数字以及空格组成的字符串,和一个字符。

输出描述:

输出输入字符串中含有该字符的个数。


 示例1:

输入

ABCDEF 
A

输出

1
 1 import java.util.*;
 2  public class Main {
 3     public static void main(String[] args) {
 4         
 5         Scanner sc=new Scanner(System.in);
 6         String line =sc.nextLine();
 7         String s=sc.nextLine().toUpperCase();
 8         int count=0;
 9         char da=s.charAt(0);
10         char[] data=line.toUpperCase().toCharArray();//若使用getBytes()data[i]l里面放的则是该字符对应的数字
11         for (int i = 0; i < data.length; i++) {
12             
13             if (data[i]==da) {
14                 count++;
15             }
16         }
17         System.out.println(count);
18         
19        
20     }
21  
22 }

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

Input Param

n               输入随机数的个数

inputArray      n个随机整数组成的数组

Return Value

OutputArray    输出处理后的随机整数

 注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。

输入描述:

输入多行,先输入随机整数的个数,再输入相应个数的整数

输出描述:

返回多行,处理后的结果

示例1

输入:

11
10
20
40
32
67
40
20
89
300
400
15

输出

10
15
20
32
40
67
89
300
400
 1 import java.util.*;
 2 public class Main {
 3    public static void main(String[] args) 
 4    {
 5         Scanner sc=new Scanner(System.in);
 6        while(sc.hasNext()){
 7           int count=sc.nextInt();
 8           int[] da=new int[count];
 9           HashSet<Integer> s=new HashSet<>();
10           for (int i = 0; i < count; i++) {
11             da[i]=sc.nextInt();
12         }
13           Arrays.sort(da);
14           for (int i = 0; i < da.length; i++) {
15             s.add(da[i]);
16         }
17           Iterator<Integer> i=s.iterator();
18         ArrayList<Integer> t=new ArrayList<>();
19           while (i.hasNext()) {
20             t.add(i.next());
21             
22         }
23       Collections.sort(t);
24        for (int j = 0; j < t.size(); j++) {
25         System.out.println(t.get(j));
26       }
27     }
28          sc.close();
29           
30     }
31 
32 }
33  
34  

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1

输入

0xA

输出

10
import java.util.Scanner;

public class Main {
   public static void main(String[] args) 
   {
       Scanner sc=new Scanner(System.in);
       while (sc.hasNext()) {
           String a=sc.nextLine();
           String data=a.substring(2, a.length());
           char[] da=data.toCharArray();
           
           int len=a.length();
           int sum=0;
           for (int j = 0; j < da.length; j++) {
               sum=(int) (sum+toTen(da[j])*Math.pow(16, da.length-j-1));
           }
           System.out.println(sum);
           
           
       }
        sc.close();
    }
   public static int toTen(char s) 
   {
       switch (s) {
        case 'A':return 10;
        case 'B':return 11;
        case 'C':return 12;
        case 'D':return 13;
        case 'E':return 14;
        case 'F':return 15;
        case '1':return 1;
        case '2':return 2;
        case '3':return 3;
        case '4':return 4;
        case '5':return 5;
        case '6':return 6;
        case '7':return 7;
        case '8':return 8;
        case '9':return 9;
        case '0':return 0;
    default:
        return -1;
        
    }
   }

}
 

题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

最后一个数后面也要有空格
 

详细描述:


函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String

输入描述:

输入一个long型整数

输出描述:

按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。

示例1

输入

180

输出

2 2 3 3 5
package uestc;

import java.util.Scanner;
public class Main {
   public static void main(String[] args) 
   {
       Scanner sc=new Scanner(System.in);
       while (sc.hasNext()) {
           long a=sc.nextLong();
           if (a<2) {
            return;
            }
           System.out.println(getResult(a)); 
       }
        sc.close();
    }
   public static String getResult(long s) 
   {
       StringBuilder sb=new StringBuilder();
       for (int i = 2; i <= s; i++) {
            while(s%i==0) {
                sb.append(i).append(" ");
                s=s/i;
            }
       }
      return sb.toString();
    }
}
 

题目描述

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。

输入:

合法坐标为A(或者D或者W或者S) + 数字(两位以内)

坐标之间以;分隔。

非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。

下面是一个简单的例子 如:

A10;S20;W10;D30;X;A1A;B10A11;;A10;

处理过程:

起点(0,0)

+   A10   =  (-10,0)

+   S20   =  (-10,-20)

+   W10  =  (-10,-10)

+   D30  =  (20,-10)

+   x    =  无效

+   A1A   =  无效

+   B10A11   =  无效

+  一个空 不影响

+   A10  =  (10,-10)

结果 (10, -10)

输入描述:

一行字符串

输出描述:

最终坐标,以,分隔

示例1

输入:

A10;S20;W10;D30;X;A1A;B10A11;;A10;

输出:

10,-10
 1 import java.util.ArrayList;
 2 import java.util.Scanner;
 3 import java.util.regex.Matcher;
 4 import java.util.regex.Pattern;
 5 
 6 
 7 public class Main {
 8    public static void main(String[] args) 
 9    {
10        Scanner sc=new Scanner(System.in);
11        while (sc.hasNext()) {
12           String a=sc.nextLine();
13           Point point=new Point(0,0);
14           String[] data=a.split(";");
15           ArrayList<String> subDatasets=new ArrayList<>();
16           for (int i = 0; i < data.length; i++) {
17               if (data[i].length()>3||data[i].length()<=1) {
18                 continue;
19             }else {
20               String regex="(A|S|W|D)\d{1,2}$";
21               Pattern pattern=Pattern.compile(regex,Pattern.MULTILINE);
22               Matcher matcher=pattern.matcher(data[i]);
23               while(matcher.find())
24               {   
25                    subDatasets.add(matcher.group());
26               };
27             }
28               
29           }
30           for (int i = 0; i < subDatasets.size(); i++) {
31               
32                 point=calculate(subDatasets.get(i),point);
33                
34           }
35           System.out.println(point.x+","+point.y);
36           subDatasets.clear();
37           
38            
39         }
40         sc.close();
41     }
42 
43         private static Point calculate(String string,Point data) {
44             String s=string.substring(0, 1); 
45             
46             int da=Integer.parseInt(string.substring(1, string.length()));     
47             switch (s) {
48                 case "A":return new Point(data.x-da,data.y);
49                 case "S":return new Point(data.x,data.y-da);
50                 case "W":return new Point(data.x,data.y+da);
51                 case "D":return new Point(data.x+da,data.y);
52                 default:
53                     break;
54                 }
55             return data;
56             
57         }
58 static class Point 
59    {
60         private int x;
61         private int y;
62      
63         public Point(int x,int y) {
64             this.x=x;
65             this.y=y;
66         }
67     }
68 }
69  
 
原文地址:https://www.cnblogs.com/jinxingerhuo/p/9640829.html