問題概要
非負整数 が与えられる。次の条件を満たすタプル を一つ求めよ。
少なくとも一つ、条件を満たすタプルが存在することが保証される。
解法
まず、 より です。負数に関しては下限以外の制約が無いことを考えると、 によって の上限を超える正整数を作ることができれば、 は自動的に決まります。 についても、両方を負数にして適当な大きさの正整数を作ることができます。従って、例えば などは条件を満たすタプルです。
コード
using VI = vector<int>; class AddMultiply { public: vector <int> makeExpression( int y ) { return VI{ -512, -1, y - 512 }; } };