华为机试 题目
2015-03-23 19:07
399 查看
1. 描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。
开始,电灯全部关着。有n个学生从长廊穿过。
第一个学生把号码凡是1的倍数的电灯的开关拉一下;
接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;
接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;
如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。
n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。
输入:电灯的数量
输出:亮着的电灯数量
样例输入:3
样例输出:1
(1) 及格线是10的倍数;
(2) 保证至少有60%的学生及格;
(3) 如果所有的学生都高于60分,则及格线为60分
输入:输入10个整数,取值0~100
输出:输出及格线,10的倍数
3 一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人?
(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。
从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;
依此规律重复下去,直到圆桌周围的人全部出列。)
4. 数组中数字都两两相同,只有一个不同,找出该数字
5 数组中数字两两相同,有两个不同,找出这两个:
开始,电灯全部关着。有n个学生从长廊穿过。
第一个学生把号码凡是1的倍数的电灯的开关拉一下;
接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;
接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;
如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。
n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。
输入:电灯的数量
输出:亮着的电灯数量
样例输入:3
样例输出:1
/* 1. 描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。 开始,电灯全部关着。有n个学生从长廊穿过。 第一个学生把号码凡是1的倍数的电灯的开关拉一下; 接着第二个学生把号码凡是2的倍数的电灯的开关拉一下; 接着第三个学生把号码凡是3的倍数的电灯的开关拉一下; 如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。 n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。 输入:电灯的数量 输出:亮着的电灯数量 样例输入:3 样例输出:1 */ #include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; #define N 100 int a ; int main() { int i,j,n,sum; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a));//0表示开,第一个人全开了 for(i=2;i<=n;i++) { for(j=1;j<=n;j++) { if(j%i==0) { a[j]=(a[j]==1?0:1); } } } sum=0; for(i=1;i<=n;i++) { if(a[i]==0) sum++; } printf("%d\n",sum); } return 0; } /* 3 8 */2. 描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:
(1) 及格线是10的倍数;
(2) 保证至少有60%的学生及格;
(3) 如果所有的学生都高于60分,则及格线为60分
输入:输入10个整数,取值0~100
输出:输出及格线,10的倍数
/* 2. 描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下: (1) 及格线是10的倍数; (2) 保证至少有60%的学生及格; (3) 如果所有的学生都高于60分,则及格线为60分 输入:输入10个整数,取值0~100 输出:输出及格线,10的倍数 */ #include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; #define N 15 int a ; int main() { int i; while(scanf("%d",&a[0])!=EOF) { for(i=1;i<10;i++) scanf("%d",&a[i]); sort(a,a+10); if(a[0]>60) { printf("60\n"); continue; } else { printf("%d\n",a[4]/10*10); } } return 0; } /* 10 20 30 40 50 60 70 80 90 100 10 20 20 20 20 60 70 80 90 100 60 60 60 60 60 60 60 60 60 60 */
3 一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人?
(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。
从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;
依此规律重复下去,直到圆桌周围的人全部出列。)
/* 一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人? (约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列; 依此规律重复下去,直到圆桌周围的人全部出列。) */ #include<iostream> #include<stdio.h> #include<string.h> using namespace std; #define N 1000 int main() { int sum,n,m,i,j,k,a[100]; while(scanf("%d%d%d",&n,&m,&k)!=EOF) { memset(a,0,sizeof(a)); i=k;//从k开始 j=0; sum=n; //sum剩余人数 //i用来在整个n中循环 //j递增报数到m,出去一个人 while(sum>0) { if(a[i]!=-1) { j++; if(j==m) { a[i]=-1; printf("%d ",i); j=0; sum--; } } i++; if(i>n) i=1; } } return 0; } /* 6 3 1 */
4. 数组中数字都两两相同,只有一个不同,找出该数字
/* 4. 数组中数字都两两相同,只有一个不同,找出该数字: */ #include<iostream> #include<stdio.h> using namespace std; int findUnique(int* a, int len) { int i,temp; temp=0; for(i=0;i<len;i++) temp=temp^a[i]; return temp; } int main() { int a[]={1,2,3,4,5,3,4,1,2}; int t; t=findUnique(a,9); printf("%d\n", t); return 0; }
5 数组中数字两两相同,有两个不同,找出这两个:
/* 5 数组中数字两两相同,有两个不同,找出这两个: */ #include<iostream> #include<stdio.h> using namespace std; void findTwoUnique(int* a, int len) { int i,temp,m,n,k; temp=0;//m^n for(i=0;i<len;i++) temp=temp^a[i]; //101 110 第0位不同 011 k=0;m=temp; while((m&1)==0)//找出第一个不同的 { m=m>>1; k++; } m=temp;//m for(i=0;i<len;i++) { if((a[i]>>k)&1) m=m^a[i]; } n=temp^m; printf("%d %d\n",m,n); } int main() { int a[]={1,2,3,4,5,3,4,1,2,6}; int t; findTwoUnique(a,10); return 0; }
相关文章推荐
- 2013年9月华为机试题目
- 自己写的华为机试题目,只要思路对,编码迟早的
- 华为机试题目:识别字符串中的整数并转换为数字形式
- 2014年华为上机机试c语言题目和答案
- 2014华为机试题目
- 2013年9月华为机试题目
- 华为机试题目及答案(工程文件)
- 算法思维——字符串压缩程序(华为2014校园招聘的机试题目)
- 2016华为校招机试题目01
- 2016华为校招机试题目02
- 2014华为校招机试题目总结
- 华为机试题目 若干
- java 华为机试题目-数组处理
- 2016华为机试题目:最大的凸多边形
- 【华为机试】题目+解答+自己不足+提升
- 2016华为机试题目:好友推荐
- 2017年,华为机试题目 《字符串按指定重新分配》 --Java实现
- 华为机试正式版(西安c/c++/java),今天下午去机试的题目,新奇出炉了!
- 华为2013年西安java机试题目:如何过滤掉数组中的非法字符。
- 华为机试题目