问题主要出在上机题,第一道为公共2进制,问题在于忘记2进制如何补零,无法统一2进制长度 题目回忆如下(大致题意):
小A(忘了叫什么)有n个数,想知道这n个数有几位2进制都为1,编号为从右往左,如此数2进制不满k位,则在最左侧补0。 测试时代码如下:
点击查看代码#include
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<
第二到编程题为根据空格数分割字符串,问题在不知道如何处理空串
(代码忘了)
总结:本次主要还是进制掌握不牢,字符串理解不够深刻。