數字分隔(二)
時間限制: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 也叫零寬度正 先行斷言,它斷言自身出現的...