华为机试历年题型.docVIP

  • 8
  • 0
  • 约1.27万字
  • 约 22页
  • 2018-03-26 发布于河南
  • 举报
华为机试历年题型

1.找出一个数组中满足2^N的元素 #include iostream using namespace std; int find(int a[],int len); void main() { int a[]={1,2,3,5,7,8,16}; int len=sizeof(a)/sizeof(int); coutfind(a,len)endl; } int find(int a[],int len) { int i; int count=0; for(i=0;ilen;i++) { if(0==(a[i](a[i]-1))) count++; } return count; } #include iostream using namespace std; void func(int n, int m, int s, int a[]); void main() { int a[9]={0}; func(9,3,1,a); for(int i=8;i=0;i--) couta[i] ; coutendl; } void func(int n, int m, int s, int a[]) { int s1; int w; s1=s; for(int k=0;kn;k++) { a[k]=k+1; } for(int i=n;i=2;i--) { s1=(s1+m-1)%i; if(s1==0) s1=i; w=a[s1-1]; for(int j=s1;ji;j++) a[j-1]=a[j]; a[i-1]=w; } } 2.报数:共n个人 从1编号,设从第s个人报号,报到m出队 #includeiostream using namespace std; void Joseph(int n, int m, int s); int main() { Joseph(9,3,1); return 0; } void Joseph(int n, int m, int s) { int i,j,w; int s1 = s; int a[100] = {0}; for(i = 0; i n; i++) //把n个人的序号放入数组a[]中; { a[i] = i + 1; } for(i = n; i= 2; i--) { s1 = (s1+m-1)%i; //s1每次出圈人的位置 if(s1 == 0) //如果s1等于0,则说明要开始报数的人是最后一个人 { s1 = i; //把此时变量i的值赋给s1 } w = a[s1-1]; //把每次出圈人的序号赋给w for(j = s1; j i; j++) { a[j-1] = a[j]; } a[i-1] = w; //把每次出圈人的序号赋给倒数第i个位置上 } for(int k = n-1; k = 0; k--) couta[k] ; coutendl; } 3.统计一个数二进制表达中0的个数(首位1之前0不计) #include iostream using namespace std; int fun(int num); int main() { int num; coutPlease enter a integer:\n; cinnum; coutfun(num)endl; return 0; } int fun(int num) { int count = 0; int i = 0; while (num) { if (num 1) { count++; } num = num 1; i++; } return (i-count); } 4.镜像反转二进制表达式,并输出十进制值 #includeiostream using namespace std; int func(int a); main() { int n; coutenter:; cinn; coutfunc(n)endl; } int func(int a) { int val=0; int temp; int i; int n=0; int b[100]; while(a!=0) { temp=(a1); b[n++]=temp; a=(a1); } for(i=0;in;i++) val=val*2+b[i]; return val; } 5.判断一个字符串中()是否配对 #includeiostream using namespace std; bool match(char a[],int length); int main() { char b[100]; int len; bool m; coutenter:endl; gets(b); len=strlen(b); m=match(b,l

文档评论(0)

1亿VIP精品文档

相关文档