• 2018网易前端实习笔试编程题总结


    1.题目:判断牛牛现在的方向?出门时面向北方
       输入:转方向的次数N,
                 长度为N的字符串,由L,R组成,L表示左转,R表示右转;

      输出:   此时面朝的方向
      分析:统计R,L的数量,相减后,取4的余数,即往那个方向转的次数
             (一次R,一次L,相当于没转,4次R或L也相当于没转)

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;
        while(cin>>n)
        {
            char a[n];
            int Lnum=0,Rnum=0;
            for(int i=0;i<n;i++)
            {
                cin>>a[i];
                if(a[i]=='L')
                  Lnum++;
                else
                  Rnum++;
            }
            int temp=0;
            if(Lnum>Rnum)
            {
              temp=(Lnum-Rnum)%4;
              switch(temp){
                  case 1:cout<<'W'<<endl; break;
                case 2:cout<<'S'<<endl; break;
                case 3:cout<<'E'<<endl; break;
                default:cout<<'N'<<endl; 
              }
            }
            else if(Lnum<Rnum)
            {
              temp=(Rnum-Lnum)%4;
              switch(temp){
                  case 1:cout<<'E'<<endl; break;
                case 2:cout<<'S'<<endl; break;
                case 3:cout<<'W'<<endl; break;
                default:cout<<'N'<<endl; 
              }
            }
            else
               cout<<'N'<<endl; 
        }
        return 0;
    } 

    2.题目:x,y均不大于n,并且x除以y的余数大于等于k ,求满足可能的数对数量(x,y)
       输入:n,k;
       输出:满足可能的数对数量
       分析:x%y>=k  -->  y>k&&x>=k
       问题:通过10%,算法复杂度有问题(坐等大牛给出优秀的算法)

      

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n,k;
        while(cin>>n>>k)
        {
            int num=0;
            for(int i=k;i<=n;i++)
            {
                for(int j=k;j<=n;j++)
                {
                    if(i%j>=k)
                       num++;
                }
             }
            cout<<num<<endl;
        }
        return 0;
    }

    3.题目:神奇数列 :1,12,123,1234,12345,123456,1234567...,求从数列l~r有多少个能被3整除;

      输入:l,r

      输出:数列l~r区间内,能被3整除的个数
      分析:各个数位的和是3的倍数的话,即该数能被3整除;

                后面出现10,11的增加,相当于加0,加1,故取3的余数来解决该问题

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int i,j;
        while(cin>>i>>j)
        {
            int num=0,remain=0;
            for(int k=1;k<=i;k++)
            {
                remain+=k%3;
            }
            for(int k=i;k<=j;k++)
            {
                remain+=k%3;
                if(remain%3==0) 
                    num++;
            }
            cout<< num <<endl;
        }
        return 0;
    } 
  • 相关阅读:
    结合项目实例 回顾传统设计模式(五)单例模式
    CUDA并行计算框架(二)实例相关。
    结合项目实例 回顾传统设计模式(八)模板方法模式
    结合项目实例 回顾传统设计模式(三)装饰者模式
    结合项目实例 回顾传统设计模式(十一)代理模式
    趣谈.net大型电子商务 亲~ 走过路过不要错过~
    结合项目实例 回顾传统设计模式(九)迭代器模式
    DataTable的操作类
    xslt调用自定义函数(C#/Js/Java)
    优秀的前段框架Bootstrap推荐
  • 原文地址:https://www.cnblogs.com/shenminer/p/8662110.html
Copyright © 2020-2023  润新知