腾讯编程题
没有测试用例,不知道这样有错没。
#include<iostream>
using namespace std;
int main()
{
int a[4];
int i = 0;
char c;
cin >> a[i++];
while ((c = getchar()) != '\n')
{
cin >> a[i++];
}
int min = a[1];
int max = a[1];
if (min > a[2])
min = a[2];
else
max = a[2];
if (min > a[3])
min = a[3];
if (max < a[3])
max = a[3];
int root = pow(2.0, --a[0]);
while (a[0] != 0) {
if (min<=root && max>=root) {
cout << root;
break;
}
if (min > root)
root += pow(2.0, --a[0]);
if (max < root)
root -= pow(2.0, --a[0]);
}
return 0;
}