2026年9月GESP认证总结
问题主要出在上机题,第一道为公共2进制,问题在于忘记2进制如何补零,无法统一2进制长度
题目回忆如下(大致题意):
小A(忘了叫什么)有n个数,想知道这n个数有几位2进制都为1,编号为从右往左,如此数2进制不满k位,则在最左侧补0。
测试时代码如下:
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int cnt=0;
int a[20005];
string num[20005];
string er(int n){
string s;
while(n!=0){
s+=(n%2)+'0';
n/=2;
}
return s;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
num[i]=er(a[i]);
}
for(int i=1;i<=n;i++){
bool flag=true;
for(int j=1;j<=n;j++){
if(num[i][j]!='1'){
flag=false;
}
}
if(flag){
cnt++;
}
}
cout<<cnt+1;
}
第二到编程题为根据空格数分割字符串,问题在不知道如何处理空串
(代码忘了)
总结:本次主要还是进制掌握不牢,字符串理解不够深刻。

浙公网安备 33010602011771号