百练OJ:2799:浮点数格式
題目鏈接
2799:浮點(diǎn)數(shù)格式
描述:輸入n個(gè)浮點(diǎn)數(shù),要求把這n個(gè)浮點(diǎn)數(shù)重新排列后再輸出
輸入:第1行是一個(gè)正整數(shù)n(n<=10000),后面n行每行一個(gè)浮點(diǎn)數(shù),保證小數(shù)點(diǎn)會(huì)出現(xiàn), 浮點(diǎn)數(shù)的長度不超過50位,注意這里的浮點(diǎn)數(shù)會(huì)超過系統(tǒng)標(biāo)準(zhǔn)浮點(diǎn)數(shù)的表示范圍。
輸出:n行,每行對(duì)應(yīng)一個(gè)輸入。要求每個(gè)浮點(diǎn)數(shù)的小數(shù)點(diǎn)在同一列上,同時(shí)要求首列上不會(huì)全部是空格。
樣例輸入
??? 2
??? -0.34345
??? 4545.232
樣例輸出
????? -0.34345
??? 4545.232
解題思路:
本題雖然以浮點(diǎn)數(shù)作為標(biāo)題,但實(shí)際上是對(duì)字符串的處理,因?yàn)檫@里的浮點(diǎn)數(shù)會(huì)超過系統(tǒng)標(biāo)準(zhǔn)浮點(diǎn)數(shù)的表示范圍,所以用浮點(diǎn)數(shù)來存儲(chǔ)輸入必然不可。對(duì)于小數(shù)點(diǎn)后面有多少個(gè)數(shù)并沒有關(guān)系,只需要找到小數(shù)點(diǎn)前面的字符最多的有幾個(gè)即可,也就是找出小數(shù)點(diǎn)前面的字符串長度的最大值,對(duì)于小數(shù)點(diǎn)前面字符數(shù)少于該唱的的字符串,補(bǔ)齊空格即可。
解題代碼:
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:日历问题