我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。Java洛谷传智杯
生活随笔
收集整理的這篇文章主要介紹了
我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。Java洛谷传智杯
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述:
我們知道計算機的大小單位有 B, KB, MB 等,現(xiàn)在請你編寫一個計算器進行大小單位換算。
輸入格式:輸入一個字符串,由一個 0 到 1023 之間的整數(shù),一個單位名稱(大寫字母),一個等于號和問號,以及第二個單位名稱。
單位只有可能是 GB,MB,KB,B 之間的一個。
輸出格式:輸出一個數(shù)字,精確到小數(shù)點后 6 位。
輸入輸出樣例:
輸入 #1
128MB=?GB
輸出 #1
0.125000
輸入 #2
64MB=?KB
輸出 #2
65536.000000
Java代碼:
import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.next();int[] curNum = new int[4];int count = 0, Num = 0;double toNum = 0;char curChar = 0, toChar = 0;for (int i = 0; i < s.length(); i++) {if (s.charAt(i) == '?'){toChar = s.charAt(i + 1);break;}}for (int i = 0; i < s.length(); i++) {if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z'){curChar = s.charAt(i);break;}curNum[i] = s.charAt(i) - '0';count++;}for (int i = 0; ; i++) {Num += curNum[i] * Math.pow(10,count-1);count--;if (count == 0) break;}if (curChar == 'G'){if (toChar == 'M'){toNum = Num * Math.pow(2,10);}else if (toChar == 'K'){toNum = Num * Math.pow(2,20);}else if (toChar == 'B'){toNum = Num * Math.pow(2,30);}else toNum = Num;}if (curChar == 'M'){if (toChar == 'G'){toNum = Num * Math.pow(2,-10);}else if (toChar == 'K'){toNum = Num * Math.pow(2,10);}else if (toChar == 'B'){toNum = Num * Math.pow(2,20);}else toNum = Num;}if (curChar == 'K'){if (toChar == 'G'){toNum = Num * Math.pow(2,-20);}else if (toChar == 'M'){toNum = Num * Math.pow(2,-10);}else if (toChar == 'B'){toNum = Num * Math.pow(2,10);}else toNum = Num;}if (curChar == 'B'){if (toChar == 'G'){toNum = Num * Math.pow(2,-30);}else if (toChar == 'M'){toNum = Num * Math.pow(2,-20);}else if (toChar == 'K'){toNum = Num * Math.pow(2,-10);}else toNum = Num;}System.out.printf("%.6f",toNum);} }總結(jié)
以上是生活随笔為你收集整理的我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。Java洛谷传智杯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SK海力士宣布量产全球最大容量24GB
- 下一篇: 小米王化回应用户倒卖小米发布会门票:官方