• 【网易】牛客网2019校招真题(编程题)


    【网易】被3整除

    【题解】打表找规律,n为3的倍数和3的倍数余2的都是可以的,3的倍数余1的数是不可以的。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int l,r,sum1,sum2;
     6     scanf("%d%d",&l,&r);
     7     l--;
     8     if(l%3==0)sum1=l/3*2;
     9     else if(l%3==2)sum1=((l+1)/3*2)-1;
    10     else sum1=(l-1)/3*2;
    11     if(r%3==0)sum2=r/3*2;
    12     else if(r%3==2)sum2=((r+1)/3*2)-1;
    13     else sum2=(r-1)/3*2;
    14     printf("%d
    ",sum2-sum1);
    15 }
    View Code

    【网易】迷路的牛牛

    【题解】简单模拟题。分类讨论即可。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n;
     6     char s[1005];
     7     scanf("%d",&n);
     8     scanf("%s",s);
     9     char now='N';
    10     for(int i=0;i<n;i++)
    11     {
    12         if(now=='N')
    13         {
    14             if(s[i]=='L')now='W';
    15             else now='E';
    16         }
    17         else if(now=='W')
    18         {
    19             if(s[i]=='L')now='S';
    20             else now='N';
    21         }
    22         else if(now=='S')
    23         {
    24             if(s[i]=='L')now='E';
    25             else now='W';
    26         }
    27         else
    28         {
    29             if(s[i]=='L')now='N';
    30             else now='S';
    31         }
    32     }
    33     printf("%c
    ",now);
    34 }
    View Code

    【网易】俄罗斯方块

    【题解】记录一下每一列的方块的个数,最后取个最小值。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,m,a[1005];
     6     scanf("%d%d",&n,&m);
     7     int x;
     8     memset(a,0,sizeof(a));
     9     for(int i=1;i<=m;i++)
    10     {
    11         scanf("%d",&x);
    12         a[x]++;
    13     }
    14     int ans=0x3f3f3f3f;
    15     for(int i=1;i<=n;i++)
    16     {
    17         //printf("%d
    ",a[i]);
    18         ans=min(ans,a[i]);
    19     }
    20     printf("%d
    ",ans);
    21 }
    View Code

    【网易】安置路灯

    【题解】贪心。每放置一个路灯,连续3个位置都能照亮,所以遇到一个“.”放一个路灯,后面两个位置即可跳过。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char s[1005];
     4 int main()
     5 {
     6     int T;
     7     scanf("%d",&T);
     8     while(T--)
     9     {
    10         int n,i=0,ans=0;
    11         scanf("%d",&n);
    12         scanf("%s",s);
    13         while(i<strlen(s))
    14         {
    15             if(s[i]=='.')
    16             {
    17                 ans++;
    18                 i+=3;
    19             }
    20             else i++;
    21         }
    22         printf("%d
    ",ans);
    23     }
    24 }
    View Code

    【网易】丰收

    【题解】将每一堆苹果做一个前缀和,可以得出从左往右数前i堆苹果的总数sum[i],对于每一次询问,只需查找第一个大于等于q的sum,考虑时间需要用二分查找(自己手写或者lower_bound都可)。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e5+5;
     4 int a[maxn],sum[maxn];
     5 int main()
     6 {
     7     int n;
     8     scanf("%d",&n);
     9     for(int i=1;i<=n;i++)
    10     {
    11         scanf("%d",&a[i]);
    12         sum[i]=sum[i-1]+a[i];
    13     }
    14     int T;
    15     scanf("%d",&T);
    16     while(T--)
    17     {
    18         int q;
    19         scanf("%d",&q);
    20         int p=lower_bound(sum+1,sum+1+n,q)-sum;
    21         printf("%d
    ",p);
    22     }
    23 }
    View Code

    【网易】表达式求值

    【题解】水题。总共6种情况,比较一下即可。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int a,b,c;
     6     scanf("%d%d%d",&a,&b,&c);
     7     int d=(a+b)*c;
     8     int e=a+b*c;
     9     int f=a*b+c;
    10     int g=a*(b+c);
    11     int h=a+b+c;
    12     int j=a*b*c;
    13     printf("%d
    ",max(h,max(j,max(d,max(e,max(f,g))))));
    14 }
    View Code

    【网易】牛牛的闹钟

    【题解】水题。化成分钟比较好算,所需决定起床时间=到教室时间-起床时间,然后把闹钟的时间从大到小排个序,这样只要找到第一个小于等于所需决定起床时间即可。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int a[105];
     4 bool cmp(int a,int b)
     5 {
     6     return a>b;
     7 }
     8 int main()
     9 {
    10     int n,h,m,x;
    11     scanf("%d",&n);
    12     for(int i=0;i<n;i++)
    13     {
    14         scanf("%d%d",&h,&m);
    15         a[i]=h*60+m;
    16     }
    17     sort(a,a+n,cmp);
    18     scanf("%d",&x);
    19     scanf("%d%d",&h,&m);
    20     int res=h*60+m-x;
    21     for(int i=0;i<n;i++)
    22     {
    23         if(a[i]<=res)
    24         {
    25             printf("%d %d
    ",a[i]/60,a[i]%60);
    26             return 0;
    27         }
    28     }
    29 }
    View Code
  • 相关阅读:
    Android开发之Path类使用详解,自绘各种各样的图形!
    json数值和结构
    ajax异步请求不能刷新数据的问题
    关于javaBean中boolean类型变量的set和get注入后传到前端JS中的问题
    Js中的window.parent ,window.top,window.self详解
    db2中修改表字段的长度,查看表字段长度,以及查看表字段已存放值大小
    db2数据库中查找数据库表
    分页查询SQL
    ibatis动态语句加and 和不加and
    win7计划任务执行BAT文件问题
  • 原文地址:https://www.cnblogs.com/z1014601153/p/11157513.html
Copyright © 2020-2023  润新知