#13588: 幫幫我QQ只有85%


willis2014 (//我凍齡)

學校 : 臺北市私立延平高級中學
編號 : 60208
來源 : [123.192.203.15]
最後登入時間 :
2024-10-03 11:20:11
d561. 被秒殺的四捨五入 -- jack1 | From: [101.13.67.164] | 發表日期 : 2018-03-24 20:14

我的程式碼:::::

如果有更簡單的方法麻煩告訴我

銘感五內:)

 

#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
while(cin>>s)
{

int flag,k=0;
for(int i=0;;i++)if(s[i]=='.'){flag=i;break;}//找到.位置
if(s[flag+3]>=53 and s[flag+3]<=57)s[flag+2]++;//進位

for(int i=flag+2;i>0;i--)if(s[i]>57 or s[i]==47)//如果9進位
{if(i==flag){s[i]--;s[i-1]++;continue;}//要進到個位時
else s[i-1]+=1;s[i]='0';
}

if(s[0]>57){cout<<1;s[0]='0';} //多一個位數時的處理

if(s[0]=='.'){s[0]='-'; //為負數多一個位數時,待下面要輸出時再補輸出
k=1;
}
for(int i=0;i<=flag+2;i++) //輸出答案
{
if(i==1 and k==1)cout<<1; //負數補輸出
cout<<char(s[i]);
}
cout<<endl;

}
}

 
#13592: Re:幫幫我QQ只有85%


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
d561. 被秒殺的四捨五入 -- jack1 | From: [1.173.96.138] | 發表日期 : 2018-03-25 12:47

我的作法是:

  1. 用字串讀入

  2. 先處理 -1.0, 0.0, 1.0,其他的數字結構就會是 -0.abcd... 0.abcd...

  3. 標記是否有負號,並將字串變成 0.abcd...

  4. 抓子字串 abc,再轉成整數 N

  5. 做四捨五入:N = (int) ((N + 5) / 10)

  6. 輸出成 "%d.%.2d", (N / 100), (N % 100)

 

 
#13622: Re:幫幫我QQ只有85%


willis2014 (//我凍齡)

學校 : 臺北市私立延平高級中學
編號 : 60208
來源 : [123.192.203.15]
最後登入時間 :
2024-10-03 11:20:11
d561. 被秒殺的四捨五入 -- jack1 | From: [203.72.178.252] | 發表日期 : 2018-03-30 17:05

我的作法是:

  1. 用字串讀入

  2. 先處理 -1.0, 0.0, 1.0,其他的數字結構就會是 -0.abcd... 0.abcd...

  3. 標記是否有負號,並將字串變成 0.abcd...

  4. 抓子字串 abc,再轉成整數 N

  5. 做四捨五入:N = (int) ((N + 5) / 10)

  6. 輸出成 "%d.%.2d", (N / 100), (N % 100)

 



太感謝您了我會再試試看

: )

 
ZeroJudge Forum