二进制翻转:指将
(例如:
第一行输入一个正整数,表示数组
的长度。
第二行输入个正整数
,表示数组
的元素。
在一行上输出一个整数,表示合法的方案数。
5 11 12 11 13 12
2
,翻转后变为
,大于翻转前;
和
翻转后均小于翻转前。
6 1 2 3 4 5 6
0
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let n,
arr = [];
rl.on("line", function (line) {
if (!n) {
n = parseInt(line.trim());
} else {
arr = line.trim().split(" ").map(Number);
rl.close();
let count = 0;
for (let i = 0; i < n; i++) {
const fz_ejz = arr[i].toString(2).split("").reverse().join("");
const fz_sjz = parseInt(fz_ejz, 2);
if (fz_sjz > arr[i]) {
count += 1;
}
}
console.log(count);
}
});