题目
代码
#include <iostream>
using namespace std;
int flip(int x)
{
if (x & 1)
{
return x;
}
int n = 0;
while (x)
{
n = (n << 1) | (x & 1);
x >>= 1;
}
return n;
}
int N, x;
int main(int argc, const char * argv[])
{
while (cin >> N)
{
for (int i = 0; i < N; i++)
{
cin >> x;
cout << flip(x);
if (i != N - 1)
{
cout << ' ';
}
else
{
cout << '\n';
}
}
}
return 0;
}
题目
代码
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXN = 6;
int n, ans;
string s[MAXN];
int vis[MAXN];
void dfs(int p)
{
if (p == n)
{
ans++;
return ;
}
for (int i = 0; i < s[p].length(); i++)
{
if (vis[s[p][i] - '0'] == 0)
{
vis[s[p][i] - '0'] = 1;
dfs(p + 1);
vis[s[p][i] - '0'] = 0;
}
}
}
int main(int argc, const char * argv[])
{
while (cin >> n)
{
ans = 0;
memset(vis, 0, sizeof(vis));
for (int i = 0; i < n; i++)
{
cin >> s[i];
}
dfs(0);
cout << ans << endl;
}
return 0;
}
题目
代码
#include <iostream>
#include <cmath>
using namespace std;
int a, b;
int main(int argc, const char * argv[])
{
while (cin >> a >> b)
{
int cnt = 0;
int sta = ceil(a / 0.95);
int end = floor(a / 0.90);
while (sta % 5 != 0 && sta <= end)
{
sta++;
}
for (int i = sta; i <= end && i <= b; i += 5)
{
cnt++;
}
cout << cnt << endl;
}
return 0;
}