百练OJ:2799:浮点数格式
生活随笔
收集整理的這篇文章主要介紹了
百练OJ:2799:浮点数格式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接
2799:浮點數(shù)格式
描述:輸入n個浮點數(shù),要求把這n個浮點數(shù)重新排列后再輸出
輸入:第1行是一個正整數(shù)n(n<=10000),后面n行每行一個浮點數(shù),保證小數(shù)點會出現(xiàn), 浮點數(shù)的長度不超過50位,注意這里的浮點數(shù)會超過系統(tǒng)標(biāo)準(zhǔn)浮點數(shù)的表示范圍。
輸出:n行,每行對應(yīng)一個輸入。要求每個浮點數(shù)的小數(shù)點在同一列上,同時要求首列上不會全部是空格。
樣例輸入
??? 2
??? -0.34345
??? 4545.232
樣例輸出
????? -0.34345
??? 4545.232
解題思路:
本題雖然以浮點數(shù)作為標(biāo)題,但實際上是對字符串的處理,因為這里的浮點數(shù)會超過系統(tǒng)標(biāo)準(zhǔn)浮點數(shù)的表示范圍,所以用浮點數(shù)來存儲輸入必然不可。對于小數(shù)點后面有多少個數(shù)并沒有關(guān)系,只需要找到小數(shù)點前面的字符最多的有幾個即可,也就是找出小數(shù)點前面的字符串長度的最大值,對于小數(shù)點前面字符數(shù)少于該唱的的字符串,補齊空格即可。
解題代碼:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input =new Scanner(System.in);int n=input.nextInt();int index=0;String[] strs=new String[n];int maxI=0;while(index<n) {String str=input.next();strs[index]=str;String i=str.substring(0, str.indexOf('.'));if(i.length()>maxI) {maxI=i.length();}index++;}for(int k=0;k<n;k++) {String str=strs[k];String i=str.substring(0, str.indexOf('.'));int numOfZero=maxI-i.length();for(int p=0;p<numOfZero;p++) {System.out.print(" ");}System.out.println(str);}input.close();}}總結(jié)
以上是生活随笔為你收集整理的百练OJ:2799:浮点数格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实现大整数的加减乘除法(百练OJ
- 下一篇: 百练OJ:2964:日历问题