問題
http://yukicoder.me/problems/no/395
X進数表記の17を10進数に直した時にAとなるXを求めよ。
制約に合うXが無ければ"-1"を出力する。
2 <= X
0 <= A <= 100
考察
1. 進数についての基礎知識がないと辛いかも知れない
2. X進数の17は10進数に直すと X + 7
3. X + 7 = A なので、X = A - 7
4. これが答えだが、いくつか制約があるのでそれをチェックして、制約に合わないなら"-1"を吐く
5. まず、2 <= Xである必要がある
6. それと、X進数表記で17、つまり、数字の7が使えるということは、8進数以上であることも制約に加わる
7. そのため、8 <= X という制約を満たす必要がある
実装
http://yukicoder.me/submissions/103832
int A; //----------------------------------------------------------------- int main() { cin >> A; int X = A - 7; if (X < 8) cout << -1 << endl; else cout << X << endl; }