Official
A - Signed Difficulty Editorial by sugarrr
問題文の通りに計算していきましょう。
まず、文字列型(C++でいう string
など)で入力を受け取り、これを \(S\) とします。
\(S\) の末尾の文字は \(Y\) なので、\(Y\) を保存しておきます。
\(S\) の末尾 \(2\) 文字は出力に不要なので、削除します。
さらに、
- \(0 \leq Y \leq 2\) ならば、\(S\) の末尾に
-
を
- \(7 \leq Y \leq 9\) ならば、\(S\) の末尾に
+
を
加えます。
最後に \(S\) を出力すれば良いです。
C++での実装例:
#include<bits/stdc++.h>
using namespace std;
signed main(){
string s;
cin>>s;
int n=s.size();//sの長さをnとする
int y=s[n-1]-'0';
s=s.substr(0,n-2);
//sの0文字目から、(n-2)文字連続で取得する。つまり、末尾2文字を削除する。
if(y<=2){
s+='-';
}else if(y>=7){
s+='+';
}
cout<<s<<endl;
return 0;
}
posted:
last update: