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: