手柄君的小阁

个人私货聚集地

蓝桥杯(大专组) 校内训练 1002.单位转换

本文最后更新于 2018 年 5 月 10 日,其中的内容可能有所发展或发生改变,敬请注意。

1002.单位转换

Time Limit: 1000 MS Memory Limit: 32768 KB

描述

在计算机存储里面的单位转换。我们都知道1MB=1024KB,1KB=1024B,1B=8bit,
试编程实现单位转换。

输入

输入由多组测试数据组成。首先输入一个整数n,表示测试数据的数目。
接下来的n行,每行表示一个未化简的数据,如xMB,xKB,xB,xbit,(1≤x≤50)

输出

输出为换算过后的数据,ybit

示例输入

4
1MB
1KB
2B
1bit

示例输出

8388608bit
8192bit
16bit
1bit

解题思路

因为输入的要么XXB要么bit,只需要识别清楚这个就好……可以通过对字符串的比对来实现

Ac源码(Java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int times= sc.nextInt();
		sc.nextLine();
		String[] counts = new String[times];
		for (int i = 0; i < times; i++){
			counts[i] = sc.nextLine();
		}
        sc.close();
		for (String count: counts){
			System.out.print(Integer.parseInt(count.replaceAll("\\D", "")) * ( count.contains("B")? (count.contains("M")?8388608: (count.contains("K")?8192:8)):1));
			System.out.println("bit");
		}
	}
 
}

来一发吐槽