TopCoder SRM597: LittleElephantAndDouble
それぞれの要素について、2の倍数でなくなるまで2で割って、全ての要素が同じ値になるかどうかを判定する。
- 2進数文字列で変換
- 末尾の 0 を除去
- 全て同じ文字列になるかの判定
で実装してみた。
public class LittleElephantAndDouble { public string getAnswer(int[] A) { return A.Select(a => Convert.ToString(a, 2)) .Select(s => s.TrimEnd('0')) .Distinct() .Count() == 1 ? "YES" : "NO"; } }