NYOJ 1092數字分割

2021-08-01 09:50:10 字數 1495 閱讀 4738

數字分隔(二)

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:3

描述

在乙個遙遠的國家,銀行為了更快更好的處理使用者的訂單,決定將一整串的數字按照一定的規則分隔開來,分隔規則如下:

1、實數的整數部分按照每三個數字用逗號分隔開(整數部分的高位有多餘的0時,需先將多餘的0過濾後,再進行數字分隔,如:0001234567 輸出結果為1,234,567.00)

2、小數部分保留兩位小數(四捨五入)

3、如果該數是負的,則在輸出時需用括號將分隔後的數字括起來,例如:-10005.1645的輸出結果為(10,005.16)

輸入

多組測試資料(以eof結尾),每行輸入乙個實數n(n的位數小於100)
輸出

輸出分隔後的結果
樣例輸入

0001234567

0.0000

-10005.1645

樣例輸出

1,234,567.00

0.00

(10,005.16)

/*

細心細心!!,寫了半個下午。

注意點:1. 負號的處理,處理數字時應把負號去掉 2.整數情況加.00

3.考慮了整數、x.***…、x.xx這種情況,漏掉了x.x

4. 999.999 所以應:先 進製 再 加逗號。

完全用string類來寫,時間有點高。

*/#include

#include

#include

#include

#include

using

namespace

std;

void conv(int st,int en,string &ans,string inp) //整數部分轉化

}string convert(string &inp)

if(inp.find('.')==string::npos) //只是整數

else

//小數

else

要考慮進製 如99.999.

if(x) temp.insert(0,1,x+'0');

ll=temp.length()-1;

for(int i=ll;i>=ll-1;i--)

ans.push_back(temp[i]);

ans.push_back('.');

conv(ll-2,0,ans,temp);

}else 第三為<=4,直接輸出。}}

if(ans[0]==')') ans.push_back('(');

reverse(ans.begin(),ans.end());

return ans;

}int main()

nyoj 1092數字分割(模擬)

數字分隔 二 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個遙遠的國家,銀行為了更快更好的處理使用者的訂單,決定將一整串的數字按照一定的規則分隔開來,分隔規則如下 1 實數的整數部分按照每三個數字用逗號分隔開 整數部分的高位有多餘的0時,需先將多餘的0過濾後,再進行數...

NYOJ1092數字分隔(二)(水水)

參照了別人的思路。include include const int maxn 120 char s maxn int main if point strchr s,else pt len printf len pt d n len pt if len pt 3 處理進製 如果小數字大於等於3位 i...

ruby on rails 數字分割函式

數字分割函式 dabfb05e quote def commify price return price.to s.gsub d d 1,日本使用方法 end quote 例子如下所示 12345678 執行 後 12,345,678 正規表示式原理 exp 也叫零寬度正 先行斷言,它斷言自身出現的...