思路:有题可知0-20,30,40,50是一个规则,也就是一个分界线,我们可以直接定义数组即可,重点就是大于20之后我们应该怎么做?我的做法是比如56,56/10=5,再让5*10=50,50可以在数组中找到,56%10=6,6也可以在数组中找到,那么就可以分别判断输出,但是还有一个小坑也就是当我们输入的第二个数如果是0的话,我们必须输出的是第一个数+o’clock,使用这个就得单独判断。
代码:
import java.util.Scanner;
public class timeAssistant {
public static void main(String[] args){
String[] arr = new String[51];
arr[0]="zero";
arr[1]="one";
arr[2]="two";
arr[3]="three";
arr[4]="four";
arr[5]="five";
arr[6]="six";
arr[7]="seven";
arr[8]="eight";
arr[9]="nine";
arr[10]="ten";
arr[11]="eleven";
arr[12]="twelve";
arr[13]="thirteen";
arr[14]="fourteen";
arr[15]="fifteen";
arr[16]="sixteen";
arr[17]="seventeen";
arr[18]="eighteen";
arr[19]="nineteen";
arr[20]="twenty";
arr[30]="thirty";
arr[40]="forty";
arr[50]="fifty";
Scanner sc = new Scanner(System.in);
int[] put = new int[2];
for (int i=0;i<2;i++){
put[i] = sc.nextInt();
}
int t = put[0]/10*10;
int s = put[0]%10;
int tt = put[1]/10*10;
int ss = put[1]%10;
if(put[0]<=20){
for (int i=0;i<arr.length;i++){
if(put[0]==i){
System.out.print(arr[i]+" ");
}
}
}else{
for (int k=0;k<arr.length;k++){
if(t == k){
System.out.print(arr[k]+" ");
}
}
for (int m=0;m<arr.length;m++){
if(s==m){
System.out.print(arr[m]+" ");
}
}
}
if(put[1]==0){
System.out.print("o'clock");
}else if(put[1]<=20){
for (int l=0;l<arr.length;l++){
if (put[1]==l){
System.out.print(arr[l]+" ");
}
}
}else {
for (int p=0;p<arr.length;p++){
if (tt==p){
System.out.print(arr[p]+" ");
}
}
for (int q=0;q<arr.length;q++){
if (ss==q){
System.out.print(arr[q]+"");
}
}
}
}
}