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;
} 

第二到编程题为根据空格数分割字符串,问题在不知道如何处理空串

(代码忘了)

总结:本次主要还是进制掌握不牢,字符串理解不够深刻。

posted @ 2026-09-12 12:56  JYJ20141211  阅读(115)  评论(0)    收藏  举报