`
pleasetojava
  • 浏览: 729304 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

网易笔试题一道

阅读更多
今天在网上溜达看到一篇不错的文章,网址是:
题目如下:
如图:
设“1”的坐标为(0,0) “7”的坐标为(-1,-1) 编写一个小程序,使程序做到输入坐标(X,Y)之后显示出相应的数字。
我的程序,没有怎么调整,很粗糙,不过,实现就行了:
  1. #include<iostream>
  2. usingnamespacestd;
  3. /* 
  4. 设“1”的坐标为(0,0)“7”的坐标为(-1,-1)编写一个小程序,
  5. 使程序做到输入坐标(X,Y)之后显示出相应的数字。
  6. */
  7. /************************************************************************
  8. **算法:数字是围绕1“盘旋”,移动的步进值是1,1,2,2,3,3,4,4,5,5,6,6……
  9. **对于一个数,我们可以算出他移动的步数,然后和一个没有走完的偏移,如果恰好走完就是
  10. **偏移为0。
  11. **然后我们对于输入的值,我们模拟走过的路径来求值,步数表示已经走过而偏移表示要继续
  12. **走偏移数目的步数
  13. *************************************************************************/
  14. enumX{RIGHT=1,DOWM=1,LEFT=-1,UP=-1};
  15. /*
  16. *get_attribution()函数取得输入值移动过几次用times表示,
  17. *以及比每次移动的终点要多走的步数,用dif表示
  18. */
  19. voidget_attribution(intin_number,int&dif,int×){
  20. inti=0;
  21. in_number--;
  22. while(in_number>=0){
  23. in_number=in_number-(i/2+1);
  24. times=i;
  25. i++;
  26. if(in_number>=0){
  27. dif=in_number;
  28. }
  29. }
  30. }
  31. intmain()
  32. {
  33. inta=21;//输入一个数值,这里就不人机交互输入了
  34. intdif=0,times=0;//起始偏移距离和次数
  35. get_attribution(a,dif,times);
  36. cout<<"偏移"<<dif<<"中间走了"<<times<<"次"<<endl;
  37. intx=0,y=0;//起始端点
  38. for(inti=1;i<=times;i++){
  39. switch(i%4){//已经走过了一些步数
  40. case0://上移到下一个端点
  41. y+=UP*((i-1)/2+1);break;
  42. case1://右移到下一个端点
  43. x+=RIGHT*((i-1)/2+1);break;
  44. case2://下移到下一个端点
  45. y+=DOWM*((i-1)/2+1);break;
  46. case3://左移到下一个端点
  47. x+=LEFT*((i-1)/2+1);break;
  48. }
  49. }
  50. switch(times%4){//继续完成要偏移的值
  51. case3://接下来的操作是上移,x不变,y减小
  52. y+=UP*dif;break;
  53. case0://接下来的操作是右移
  54. x+=RIGHT*dif;break;
  55. case1://接下来的操作是下移
  56. y+=DOWM*dif;break;
  57. case2://接下来的操作是左移
  58. x+=LEFT*dif;break;
  59. }
  60. cout<<"("<<x<<","<<y<<")"<<endl;
  61. return0;
  62. }
作者给出了自己的程序,太长我就引用了,也给出了人家的程序,挺不错,如下:
  1. #include<iostream>
  2. #include<conio.h>
  3. #include<math.h>
  4. usingnamespacestd;
  5. intnewVal(intx,inty)
  6. {
  7. //以结点1为原点
  8. //以相邻两结点间的距离为单位(如结点2与结点3的之间线段)
  9. //结点7所在的正方形(由结点2、3、4、5、6、7、8、9构成)的边长
  10. //的一半为1,即结点7到原点1的最大投影距离为1。
  11. //于是由结点坐标,可以求出此结点所在的正方形的投影距离:
  12. intr=max(abs(x),abs(y));
  13. //进行坐标变换,即把坐标原点移动到正方形的一个角结点上,
  14. //使整个正方形落在第一象限,例如,当r=1时,将把坐标原点从结点1
  15. //移动到结点7。
  16. x+=r;
  17. y+=r;
  18. //正方形的边长,等于投影距离的两倍
  19. intd=2*r;
  20. ints;//s为结点在自己的正方形的偏移量
  21. if(y==0)
  22. s=3*d+x;
  23. elseif(x==0)
  24. s=2*d+(d-y);
  25. elseif(y==d)
  26. s=d+(d-x);
  27. else
  28. s=y;
  29. //pow((r+1),2)为内层的结点数。
  30. //例如,结点10的内层由结点1和正方形A(2、3、4、5、7、8、10)构成
  31. //这些内层的总结点数恰为:(正方形A的边长+1)的平方,
  32. //因为:正方形A的边长=(结点10所在正方形的半径-1)*2
  33. //故:内层结点数=(结点10所在正方形的边长-1)的平方
  34. //结点值=在当前正方形的偏移量+内层的结点数
  35. s+=pow((d-1),2);
  36. returns;
  37. }
  38. intmain(intargc,char*argv[])
  39. {
  40. intx,y;
  41. cout<<"请输入坐标(xy):";
  42. while(cin>>x>>y)
  43. {
  44. cout<<"坐标所在的结点值为:"<<f(x,y)<<endl;
  45. cout<<"请输入坐标(xy):";
  46. }
  47. return0;
  48. }
分享到:
评论

相关推荐

    网易笔试题

    描述"2010网易笔试题 2012网易笔试题等多套网易笔试题"进一步确认了这份资料的时间跨度,涵盖了2010年和2012年的网易笔试题目,暗示可能存在其他年份的题目,意味着这是一个比较全面的试题集合,对于了解网易笔试...

    2013网易校招笔试题

    2013网易校园招聘笔试题,适用于c++开发,客户端开发,移动平台开发等

    技术笔试为何难过人文关 解剖网易笔试题

    技术笔试为何难过人文关 解剖网易笔试题,技术笔试为何难过人文关 解剖网易笔试题

    网易校招面试笔试题

    【标题】"网易校招面试笔试题"涵盖了网易公司在招聘过程中对候选人的技术与非技术能力的考察。作为中国互联网巨头之一,网易对于应聘者的选拔非常严谨,面试笔试环节是评估候选人是否具备所需技能和潜力的重要阶段。...

    网易程序笔试题

    【网易程序笔试题】是程序员在求职过程中可能会遇到的一个重要环节,主要测试候选人的编程能力、逻辑思维以及问题解决技巧。此类试题通常涵盖多种IT领域的知识点,包括但不限于数据结构、算法、操作系统、计算机网络...

    嵌入式软件笔试题合集.zip

    嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集...

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....

    一道网易笔试算法题

    12-02-28网易笔试一道算法题,附件代码是我自己的解题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    网易有道笔试题第一部分偏产品策划知识.doc

    网易有道笔试题第一部分偏产品策划知识.doc

    2016校招网易游戏笔试题

    【标题】2016校招网易游戏笔试题解析 在2016年的校招过程中,网易游戏作为中国领先的游戏开发与发行公司,对应聘者进行了一系列的专业笔试考核。这次笔试不仅测试了应届毕业生的技术实力,也考察了他们的逻辑思维、...

    2015 BAT、网易、京东等公司校招笔试题

    2015校园招聘笔试题大合集。 包含百度、阿里巴巴、腾讯、360、网易、小米、京东、美团、人人等。

    IT公司笔试试题网易华为

    IT公司笔试试题

    华信笔试题笔试题笔试题

    大连华信去年的笔试题,可以给各位即将工作的同学一些参考

    腾讯,百度,迅雷,网易笔试题

    腾讯,百度,迅雷,网易笔试题 都是互联网大公司啊,看看笔试题,了解他们考察的方向

    C#笔试题大全C#笔试题大全C#笔试题大全.

    C#笔试题大全C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.,让你...

    网易笔试题.pdf

    【网易笔试题知识点总结】 一、数学证明题知识点总结 1. 分数数列的证明题:这个问题考察了数学归纳法和不等式的应用,主要目的是证明一个数列的平均值是否在最大值和最小值之间。解决这类问题需要对分数的性质有...

Global site tag (gtag.js) - Google Analytics