您当前的位置: 首页 > 

TechGuide

暂无认证

  • 5浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

字节跳动秋招笔试四道编程题(2021-08-29)

TechGuide 发布时间:2021-08-29 14:08:26 ,浏览量:5

以下字节笔试编程题代码及思路由@nuoyanli提供,有兴趣的可以去这位ACM专业打铁选手那里找到更多刷题技巧。

文章目录
  • 第一道:第一题自然数a、b(100%)
    • 题目描述
    • 思路
    • 参考代码:
  • 第二道:小明玩游戏(100%)
    • 题目描述
    • 思路
    • 参考代码:
  • 第三道: 五子棋(100%)
    • 题目描述
    • 思路
    • 参考代码
  • 第四道:扑克牌(100%)
    • 题目描述
    • 思路
    • 参考代码

第一道:第一题自然数a、b(100%) 题目描述

给定两个自然数a和b,要求对这两个数字做N次操作后,是两个数字的值最终相等。在第i次操作中,选择a或者b对其加i。请计算使a和b相等的最小操作次数。

例如,给定数字a=27和b=20,最少可以进行5步操作后使其相等:

第1步,令b=b+1,此时a为27,b为21 第2步,令b=b+2此时a为27b为23 第3步,令b=b+3,此时a为27,b为26 第4步,令a=a+4,此时a为31,b为26 第5步,令b=b+5,此时a为31b为31

输入描述: 输入包括t+1行 第一行是一个正数t(1 a >> b; LL k = abs(a - b); LL l = -1, r = 1e5; while(l + 1 > 1; if(mid*(mid+1)/2 b; int cha = abs(b - a); int now = sqrt(cha * 2); while (true) { if (now * (now + 1) / 2 >= cha && (now * (now + 1) / 2 - cha) % 2 == 0) break; now++; } cout > c; pre[i].a = pre[i - 1].a + a; pre[i].b = pre[i - 1].b + b; pre[i].c = pre[i - 1].c + c; } for (int i = 1; i > a >> b >> c; int l = 1, r = n, ans = -1; while (l = a && pre[mid].b >= b && pre[mid].c >= c) { ans = mid; r = mid - 1; } else l = mid + 1; } cout

关注
打赏
1665329535
查看更多评论
立即登录/注册

微信扫码登录

0.0352s