题解 | #学英语#

学英语

http://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc

import java.util.* ;
public class Main{
    public static void main(String...args) {
        Scanner sc = new Scanner(System.in) ;
        while(sc.hasNextLine()) {
            String input = sc.nextLine() ;
            if(input.matches("\\d+")) {
                System.out.println(solu(input)) ;
            } else {
                System.out.println("error") ;
            }
        }
    }
   public static String solu(String str) {
        int num = Integer.parseInt(str) ;
        if(num == 0) {
            return "zero" ;
        } 
        if(num < 100) {
        	return two(str) ;
        //百	
        } else if( num < 1000) {
            return three(str) ;
        //千
        } else if(num < 1000000) {
           return  thousand(str.substring(0,str.length()-3))+three(str.substring(str.length()-3)) ;
        //百万
        } else {
            return million(str.substring(0,str.length()-6)) + thousand(str.substring(str.length()-6,str.length()-3))+three(str.substring(str.length()-3)) ;
        }
    }
    //百万
    public static String million(String str) {
        String ret = "million " ;
        int num = Integer.parseInt(str) ;
         if(num == 0) {
             return " " ;
         }
         if(num < 100) {
        	 return two(str) + ret ;
         }
         return three(str) + ret ; 
    }
    //千
     public static String thousand(String str) {
        String ret = "thousand " ;
        int num = Integer.parseInt(str) ;
         if(num == 0) {
             return " " ;
         }
         if(num < 100) {
        	 return two(str) + ret ;
         }
         return three(str) + ret ; 
     }
    //三位数
     public static String three(String str) {
         
         String ret = "and " ;
         int num = Integer.parseInt(str) ; 
         if(num == 0) {
             return " " ;
         }
        if(num < 100) {
             return two(str.substring(1)) ;
         } else {
             return two(str.substring(0,1)) + "hundred " + ret + two(str.substring(1)) ;
         }
     }
    //两位以内
    public static String two(String str) {
        int num = Integer.parseInt(str) ;
        if(num == 0) {
            return "" ;
        } else {
            if(num <= 10) {
                switch(num) {
                    case 1:return "one ";
                    case 2:return "two ";
                    case 3:return "three ";
                    case 4:return "four ";
                    case 5:return "five ";
                    case 6:return "six ";
                    case 7:return "seven ";
                    case 8:return "eight ";
                    case 9:return "nine ";
                    case 10:return "ten ";
                }
            } else {
                
                switch(num/10) {
                        //11-20
                    case 1: {
                        switch(num%10) {
                            case 1:return "eleven ";
                            case 2:return "twenty ";
                            case 3:return "thirteen ";
                            case 4:return "fourteen ";
                            case 5:return "fifteen ";
                            case 6:return "sixteen ";
                            case 7:return "seventeen ";
                            case 8:return "eighteen ";
                            case 9:return "nineteen ";
                        }
                    }
                        //20-99
                    case 2:return "twenty " + two((num%10)+"");
                    case 3:return "thirty " + two((num%10)+"");
                    case 4:return "forty " + two((num%10)+"");
                    case 5:return "fifty " + two((num%10)+"");
                    case 6:return "sixty " + two((num%10)+"");
                    case 7:return "seventy " + two((num%10)+"");
                    case 8:return "eighty " + two((num%10)+"");
                    case 9:return "ninety " + two((num%10)+"");
                }
            }
        }
        return " ";
    }
} 

一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
2 2 评论
分享
牛客网
牛客企业服务