参考代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String sT = scanner.nextLine(); int T = Integer.parseInt(sT); String[] strings = new String[T]; for (int i = 0; i < T; i++) { strings[i] = scanner.nextLine(); } int by = 0; // 字节数 // 除了类型后面有一个空格,以及定义数组时 new 后面的一个空格之外,不会出现多余的空格。 // type 可能是 int、long 或 String // type var1=value1,var2=value2…; // type[] arr1=new type[size1],arr2=new type[size2]…; for(int i = 0; i < T; i++) { String[] s1 = strings[i].split(" "); // 五种情况: int \ long \ String \ int[] \ long[]对应匹配计算字节数 if (s1[0].equals("int")) { String[] s2 = s1[1].split(",|;"); by += s2.length*4; } else if (s1[0].equals("long")) { String[] s2 = s1[1].split(",|;"); by += s2.length*8; } else if (s1[0].equals("String")) { String[] s2 = s1[1].split("=|,|;"); for (int j = 1; j < s2.length; j += 2) { by += s2[j].length() - 2; } } else if (s1[0].equals("int[]")) { for (int j = 2; j < s1.length; j++) { String[] s2 = s1[j].split("\\[|\\]"); int x = Integer.parseInt(s2[1]); by += x * 4; } } else if (s1[0].equals("long[]")) { for (int j = 2; j < s1.length; j++) { String[] s2 = s1[j].split("\\[|\\]"); int x = Integer.parseInt(s2[1]); by += x * 8; } } } // GB、MB、KB、B int GB = (by/1024/1024/1024); int MB = (by/1024/1024) % 1024; int KB = (by/1024) % 1024; int B = by % 1024; if (GB != 0) { System.out.print(GB + "GB"); } if (MB != 0) { System.out.print(MB + "MB"); } if (KB != 0) { System.out.print(KB + "KB"); } if (B != 0) { System.out.print(B + "B"); } } }
0.0分
3 人评分
P1002 (C语言代码)浏览:1019 |
成绩转换 (C语言代码)浏览:1048 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:793 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:503 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:716 |
1017题解浏览:663 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:585 |
妹子杀手的故事 (C语言代码)浏览:1154 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2248 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:487 |