nyoj 1092數字分割(模擬)

2021-07-11 22:50:08 字數 1144 閱讀 3922

數字分隔(二)

時間限制:

1000 ms  |  記憶體限制:

65535 kb     難度:

3 描述

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

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

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

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

輸入

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

輸出輸出分隔後的結果

樣例輸入

0001234567

0.0000

-10005.1645

樣例輸出

1,234,567.

000.00

(10,005.16)

分析:

按照題意轉化為字串,然後處理進製,小數,模擬得到結果!

#include#includechar b[110];

int main()

len=strlen(b);

if(ch=strchr(b,'.'))//查詢字串中首次出現.的位置

d=ch-b;

else

d=len;

if(len-d>3)//處理進製

}i=d-1;

while(b[i]>'9')

}b[d+3]='\0';

}else if(len-d==2)//如果有一位小數,加0

else if(len-d==1)//如果只有小數點,再加00

else if(len-d==0)//如果沒有小數點,就直接加.00

for(l=0; b[l]=='0'; ++l);//除去前導0

if(b[l]=='.')//輸出整數部分

--l;

if(s)

putchar('(');

while(l

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...

1092 最好吃的月餅 (20 分)

我的部落格現在正在更新乙級題解哦 我的部落格 菜雞的我又來二刷了 includeusing namespace std int base 1010 int main int max base 0 for int i 1 i m i int k 0 int ans 10010 for int i 1 ...