挑兵挑将
//
// Created by abner on 2023/3/20.
//
#include <bits/stdc++.h>
using namespace std;
int n,k,m;
bool a[25];
//direction为1时逆时针,-1顺时针
//position,direction,count
int pick(int p,int d,int c){
while (c--) {
do {
p = (p + d + n - 1) % n + 1;
}while (a[p] == 0);
}
return p;
}
int main(){
while(cin>>n>>k>>m,!(n == 0 && k == 0 && m == 0)){
for (int i=1;i<=n;i++)
a[i] = true;
int remain = n;
int pa=n,pb=1;//注意这里pa不是1,而是往前走了一位;同理pb
while (remain){
pa = pick(pa,1,k);
pb = pick(pb,-1,m);
if (pa ==pb) {
printf("%3d", pa);
remain--;
} else{
printf("%3d%3d",pa,pb);
remain = remain -2;
}
a[pa] = a[pb] = 0;
if (remain)
printf(",");
}
printf("\n");
}
return 0;
}
数字问题
//
// Created by abner on 2023/3/20.
//
#include <bits/stdc++.h>
using namespace std;
int n;
int ans =0;
void f(int m){
if (m > n)
return;
else
ans++;
f(m*10);
f(m*10+1);
}
int main(){
scanf("%d",&n);
f(1);
printf("%d",ans);
return 0;
}
小码哥的跳棋游戏
//
// Created by abner on 2023/3/20.
//
#include <bits/stdc++.h>
using namespace std;
int n,a[100005],ans;
int main(){
cin >>n;
for (int i=1;i<=n;i++)
cin >> a[i];
for (int i=1;i<n;i++)
if(a[i] && a[i+1]){
a[i+1]=0;
ans++;
}
ans += a[n];
cout << ans <<endl;
return 0;
}
斐波那契,但是是字符串
//
// Created by abner on 2023/3/20.
//
#include <bits/stdc++.h>
using namespace std;
#define ll long long
string a0 ="IAKIOI";
string a1 ="WHENWILLSCORLLOFTAIWUCOMEOUT!!!";
ll len[85],n,c;
void find(ll n,ll c){
if(n==0) {
cout << a0[c - 1];
return;
}
if(n==1){
cout <<a1[c -1];
return;
}
if (c <= len[n-2])
find(n-2,c);
else
find(n-1,c-len[n-2]);
}
int main(){
cin >>n >>c;
len[0] = a0.length();
len[1] = a1.length();
for (int i=2;i<=n;i++)
len[i] = len[i-2] + len[i-1];
find(n,c);
return 0;
}