2017中兴校园招聘成都地区笔试题
来源:互联网 发布:迅雷网络校园招聘 编辑:程序博客网 时间:2024/04/29 03:24
答案:
#include<iostream>
using namespacestd;
intcaculateGCD(int a, int b){
int c;
if(a== b)
return a;
else{
while((c=a%b) != 0){
a=b;
b=c;
}
}
return b;
}
int main()
{
int a=6;
int b =12;
int c;
c = caculateGCD(a, b);
cout<<"a"<<a<<"\t"<<"b:"<<b<<"\n"<<"c:"<<c<<endl;
}
答案:
int gcd(int x,inty)
{
int t;
if(x<y)
{
t=x;
x=y;
y=t;
}
return (y==0)?x:gcd(y,x%y);
}
intgeneralizedGCD(int *arr, int len)
{
if (len == 1)
return *arr;
return gcd(arr[len-1],generalizedGCD(arr,len-1));
}
答案:
#include<iostream>
using namespacestd;
voidtrapeziumPatternPrint(int n){
int i,j;
int k=1;
int m;
for(i=0;i<n;i++){
for(j=0;j<i;j++){
cout<<"--";
}
for(j=1;j<=n-i;j++){
cout<<k++<<"*";
}
m = n-i-1;
m = n*(n+1)/2+m*(m+1)/2+1;
for(j=1;j<n-i;j++){
cout<<m++<<"*";
}
cout<<m;
cout<<"\n";
}
cout<<endl;
}
int main()
{
trapeziumPatternPrint(4);
return 0;
}
1.如果树中的节点的值不重复的话可以用如下代码,非常简洁:
boolHasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if (NULL == pRoot1)
{
return false;
}
if (NULL == pRoot2)
{
return true;
}
if (pRoot1->val == pRoot2->val)
{
return HasSubtree(pRoot1->left,pRoot2->left)&&HasSubtree(pRoot1->right,pRoot2->right);
}
else
{
returnHasSubtree(pRoot1->left,pRoot2)||HasSubtree(pRoot1->right,pRoot2);
}
}
2.
#include<iostream>
using namespacestd;
struct TreeNode{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int value):val(value), left(NULL), right(NULL) { }
};
//Determine ifbinary tree root2 is a sub-structure of binary tree root1.
boolSubBinaryTree(TreeNode *root1, TreeNode *root2)
{
if(!root1 && !root2) return true;
if(root1 && root2)
{
if(root1->val == root2->val)
return SubBinaryTree(root1->left,root2->left) &&SubBinaryTree(root1->right, root2->right);
else
returnSubBinaryTree(root1->left, root2) ||SubBinaryTree(root1->right, root2);
}
return false;
}
1. #include<iostream>
2. using namespace std;
3.
4. int *next_arr(int &day, int arr[]);
5. int main()
6. {
7. int k, day;
8. int arr[8];
9. cout << "请输入现在的状态: ";
10. for (int i = 0; i < 8; ++i)
11. {
12. cin >> k;
13. arr[i] = k;
14. }
15. cout << endl << "请输入查询的天数: ";
16. cin >> day;
17.
18. int *arr_day=next_arr(day, arr);
19. cout << endl << " 将来的活跃状态 : ";
20. for (int i = 0; i < 8; ++i)
21. {
22. cout << arr_day[i] << " ";
23. }
24. cout << endl;
25. system("pause");
26.}
27.int *next_arr(int &day, int arr[])
28.{
29. int temp[8];
30. int n = 0;
31. for (int j = 0; j < day; ++j)
32. {
33. for (int i = 0; i < 8; ++i)
34. {
35. switch (i)
36. {
37. case 0:
38. temp[i] = arr[i + 1] ^ n;
39. break;
40. case 1:case 2:case 3:case 4:case 5:case 6:
41. temp[i] = arr[i - 1] ^ arr[i + 1];
42. break;
43. case 7:
44. temp[i] = arr[i - 1] ^ n;
45. break;
46. }
47. }
48.
49. for (int i = 0; i < 8; ++i)
50. {
51. arr[i] = temp[i];
52. }
53. }
54. int *arrresult = arr;
55. return arrresult;
56.}
第二种:
[cpp] view plain copy
1. #include<iostream>
2. using namespace std;
3.
4. void next_arr(int day,int arr[]);
5. int main()
6. {
7. int k,day;
8. int arr[8];
9. cout << "请输入现在的状态: ";
10. for (int i = 0; i < 8; ++i)
11. {
12. cin >> k;
13. arr[i] = k;
14. }
15. cout << endl << "请输入查询的天数: ";
16. cin >> day;
17.
18. next_arr(day, arr);
19. cout << endl;
20. system("pause");
21.}
22.void next_arr(int day,int arr[])
23.{
24. int temp[8];
25. int n = 0;
26. for (int j = 0; j < day; ++j)
27. {
28. for (int i = 0; i < 8; ++i)
29. {
30. if (i == 0)
31. {
32. temp[i] = arr[i + 1] ^ n;
33. }
34. else if (i == 7)
35. {
36. temp[i] = arr[i - 1] ^ n;
37. }
38. else
39. temp[i] = arr[i - 1] ^ arr[i + 1];
40. }
41.
42. for (int i = 0; i < 8; ++i)
43. {
44. arr[i] = temp[i];
45. }
46. }
47. cout << endl<<" 现在的活跃状态 : ";
48. for (int i = 0; i < 8; ++i)
49. {
50. cout << arr[i]<<" ";
51. }
52.}
4.某个图像通过一个整数组成的m*n矩阵表示,其中每个整数表示一个像素值。写出一种方法,根据flag变量的值将图像向右或者向左旋转90°。如果flag值为0,则向左旋转,如果flag为1,则向右旋转。
函数rotatePictureMethod的输入分别由矩阵matrix、矩阵的维度m和n以及flag的值组成。
函数应返回一个指向二维矩阵指针,该矩阵是按照flag值旋转后的结果矩阵而动态分配的。
示例:
如果标志flag=1且m=3,n=3,输入矩阵
1 2 3
4 5 6
7 8 9
输出矩阵
7 4 1
8 5 2
9 6 3
这题比较简单,另开辟一个矩阵空间,直接赋值即可。代码如下:
using namespacestd;
int**rotatePictureMethod(int **matrix,int m,int n,int flag){
int **mat = new int *[n];
for(int i = 0;i<n;++i)
mat[i] = new int [m];
if(flag == 1){
for(int i = 0;i<m;++i){
for(int j = 0;j<n;++j){
mat[n-1-j][m-1-i] =matrix[i][n-1-j];
}
}
}
else{
for(int i = 0;i<m;++i){
for(int j = 0;j<n;++j){
mat[n-1-j][m-1-i] =matrix[m-1-i][j];
}
}
}
return mat;
}
//FUNCTIONSIGNATURE ENDS
编程题2描述:
给定一个整数n,以下列方式打印n行。
如果n=4,生成的排列将为:
1*2*3*4
9*10*11*12
13*14*15*16
5*6*7*8
函数squarePatternPrint的输入应包括一个整数n(假设0<=n<=100)。不要从函数返回任何内容。使用cout打印所需的阵列。
各输出行只能由“数字”和“*”组成,不应有空格。
有用的命令:cout可将内容打印到屏幕上。
分析:这题主要是找规律,从1开始输入自然数,依次增加,每行4个整数,先是第一行,然后最后一行,再是第二行,然后倒数第二行......以此类推。解题的关键是找到每行的首元素的规律分布即可。代码如下:
using namespacestd;
voidsquarePatternPrint(int n){
if(n==0)
cout<<""<<endl;
else if(n==1)
cout<<1<<endl;
else if(n%2==0){
for(int i = 0;i<n;i+=2){
for(int i1 =i*n+1;i1<(i+1)*n;++i1){
cout<<i1<<"*";
}
cout<<(i+1)*n<<endl;
}
for(int i =(n-1)*n+1;i>0;i-=2*n){
for(int i1 =i;i1<i+n-1;++i1){
cout<<i1<<"*";
}
cout<<i+n-1<<endl;
}
}
else{
for(int i = 0;i<n;i+=2){
for(int i1 =i*n+1;i1<(i+1)*n;++i1){
cout<<i1<<"*";
}
cout<<(i+1)*n<<endl;
}
for(int i =(n-1)*(n-1);i>0;i-=2*n){
for(int i1 =i;i1<i+n-1;++i1){
cout<<i1<<"*";
}
cout<<i+n-1<<endl;
}
}
}
- 2017中兴校园招聘成都地区笔试题
- 中兴校园招聘笔试题【笔记】
- 中兴2005校园招聘笔试
- 中兴移动2014届校园招聘C++笔试题
- 2013届 小米校园招聘成都笔试题
- 记校园招聘第一场笔试--中兴
- 中兴2016校园招聘笔试 软测
- [C++笔试] 中兴移动2014届校园招聘C++笔试题
- 校园招聘笔试题
- 中兴2015校园招聘笔试题 +部分 答案(自己做的)
- 中兴2016校园招聘 硬件笔试(8.27)
- 【2012校园招聘】中兴
- 华为2018校园优先招聘深圳地区笔试代码分享
- 滴滴2017校园招聘笔试题
- 搜狗2017校园招聘笔试题
- 滴滴2017校园招聘笔试题
- 小米2017校园招聘笔试题
- 2017滴滴出行校园招聘笔试题
- Red and Black (深度优先搜索 DFS)
- 彻底清除Github上某个文件的历史(针对误上传密码文件等情况)
- 网络请求框架
- Container With Most Water
- unity5.3.4按钮点击场景切换
- 2017中兴校园招聘成都地区笔试题
- Java 字符串与整数的转换
- 大数-乘法
- Howto Simulate Sensor Networks in NS-2
- L02_基本数据类型
- 三种方式实现网页二级菜单
- Unable to load configuration. - bean - jar:file:/C:/Program Files/Apache Software Foundation/T
- Mkaefile的使用
- (43)友元