首页 > 代码库 > PAT 1073
PAT 1073
简单题,字符串处理,写的有点乱
1 import java.util.*; 2 import java.io.*; 3 4 class FastReader{ 5 BufferedReader reader; 6 StringTokenizer tokenizer; 7 8 public FastReader(InputStream stream){ 9 reader = new BufferedReader(new InputStreamReader(stream), 1 << 22);10 tokenizer = null;11 }12 13 public String next(){14 while (tokenizer == null || !tokenizer.hasMoreTokens()){15 try { 16 tokenizer = new StringTokenizer(reader.readLine());17 } catch (Exception e){18 //System.out.println(-1);19 throw new RuntimeException(e);20 }21 }22 23 return tokenizer.nextToken();24 }25 26 public int next_int(){27 return Integer.parseInt(next());28 }29 30 public float next_float(){31 return Float.parseFloat(next());32 }33 }34 35 public class Main {36 public static void main(String[] args){37 FastReader reader = new FastReader(System.in);38 String input = reader.next();39 40 int num_sig = (input.charAt(0) == ‘+‘) ? 1 : -1;41 String int_part = input.substring(1, 2);42 43 String dec_part;44 int cur_idx = 3;45 while (Character.isDigit(input.charAt(cur_idx)))46 cur_idx++;47 48 dec_part = input.substring(3, cur_idx);49 50 cur_idx++;51 int exp_num = Integer.parseInt(input.substring(cur_idx));52 53 54 int dec_part_cnt = dec_part.length();55 56 StringBuilder res_sb = new StringBuilder();57 58 if (exp_num < 0){59 exp_num = -exp_num;60 61 if (num_sig == -1)62 res_sb.append(‘-‘);63 64 res_sb.append("0.");65 exp_num--;66 while (exp_num != 0){67 res_sb.append(‘0‘);68 exp_num--;69 }70 71 res_sb.append(int_part);72 res_sb.append(dec_part);73 } else {74 if (num_sig == -1)75 res_sb.append(‘-‘);76 77 if (exp_num >= dec_part_cnt){78 res_sb.append(int_part);79 res_sb.append(dec_part);80 81 int zero_cnt = exp_num - dec_part_cnt;82 for (int i = 0; i < zero_cnt; i++)83 res_sb.append(‘0‘);84 } else {85 res_sb.append(int_part);86 res_sb.append(dec_part.substring(0, exp_num));87 res_sb.append(‘.‘);88 res_sb.append(dec_part.substring(exp_num));89 }90 }91 92 System.out.println(res_sb.toString());93 }94 }
PAT 1073
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。