牛客网 vivo2020届春季校园招聘在线编程考试 第3题

  • 1、问题分析
  • 2、问题解决
  • 3、总结

1、问题分析

  主要就是两个数学公式。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。
高斯自然数求和公式如下:

1+2+...+n=n×(n+1)21 + 2 + ... + n = \frac{{n \times (n + 1)}}{2} 1+2+...+n=2n×(n+1)​

平方和公式如下:

12+22+...+n2=n×(n+1)×(2n+1)6{1^2} + {2^2} + ... + {n^2} = \frac{{n \times (n + 1) \times (2n + 1)}}{6} 12+22+...+n2=6n×(n+1)×(2n+1)​

2、问题解决

  笔者以C++方式解决。

#include "iostream"using namespace std;#include "algorithm"
#include "vector"
#include "queue"
#include "set"
#include "map"
#include "cstring"
#include "stack"class Solution {private:long long sum = 0;// 定义返回节点是否是完美节点 0 不是; 1 是int flag = 0;
public:/**** @param n int整型 第n天* @return int整型*/int solution(int n) {// write code hereint result = deal(n);int temp;// 完美节点if (flag == 1) {// 根据数学公式 1^2+2^2+...+n^2=(n)*(n+1)*(2*n+1)/6result = result * (result + 1) * (2 * result + 1)/6;}else {// 非完美节点,最后一个节点的效率无法全部发挥,计算 返回节点之前节点的和temp = (result-1) * ((result - 1) + 1) * (2 * (result - 1) + 1)/6;// 使用最后节点的工作效率有几天int number_data = n - (result - 1) * ((result - 1) + 1) / 2;// 将之前的结果和最后几天高效率工作结果累加即最终结果result = result * number_data + temp;}return result;}// 获取 n 对应的最后一个数的值,并记录是否正好整数个整数相加(是否是完美点)// 如 1 + 2 + 3 + 4 < 11 < 1 + 2 + 3 + 4 + 5 ,说明此时 4 和 5 是临界节点// 此处我们按照 5 返回结果,由于 11 != 1 + 2 + 3 + 4 + 5 ,说明 5 不是完美节点,所以flag ==0;// 如果 n = 15 ,此时  15 = 1 + 2 + 3 + 4 + 5 ,此时 5 就是完美节点 ,此处 flag == 1int deal(int n) {for (int i = 1; i < n; ++i) {// 根据数学公式 1+2+ ... + n = (n)*(n+1)/2 ,计算和sum = i * (i + 1) / 2;// 如果是完美节点if (sum == n) {flag = 1;return i;}else if (sum > n) {return i;}}}
};int main() {Solution *pSolution = new Solution;int i = pSolution->solution(15);cout << i << endl;system("pause");return 0;
}

运行结果

有点菜,有时间再优化一下。

3、总结

  书上的代码直接运行绝大部分是对的,但是总有一些软件的更新使得作者无能为力。之前的API是对的,但是之后就废弃了或修改了是常有的事。所以我们需要跟踪源代码。这只是一个小小的问题,如果没有前辈的无私奉献,很难想象我们自己一天能学到多少内容。感谢各位前辈的辛勤付出,让我们少走了很多的弯路!

点个赞再走呗!欢迎留言哦!

牛客网 vivo2020届春季校园招聘在线编程考试 第3题相关推荐

  1. 牛客网 vivo2020届春季校园招聘在线编程考试 第2题

    牛客网 vivo2020届春季校园招聘在线编程考试 第2题 1.问题分析 2.问题解决 3.总结 1.问题分析 基本思路是: 1.如果有因子大于等于 10 ,说明不存在 m,使得 m 的各位(个位.十 ...

  2. 牛客网vivo2020届春季校园招聘在线编程考试

    来源:牛客网vivo2020届春季校园招聘在线编程考试 https://www.nowcoder.com/question/next?pid=22390442&qid=925105&t ...

  3. 【c++】牛客网 vivo2020届春季校园招聘在线编程考试题 手机锁屏的有效模式

    题目参考: 牛客网 vivo2020届春季校园招聘在线编程考试题 一根烟,一壶酒,一道算法编一宿... 这是个明显的图结构,九个结点,任意两个节点间相连,我们可以求出图的所有所有满足如下要求的有序路径 ...

  4. vivo2020届春季校园招聘在线编程考试 解题报告 Apare_xzc

    vivo2020届春季校园招聘在线编程考试 解题报告 题目链接:牛客链接 A. 手机屏幕解锁模式 分析: 这是一个智能手机的图案锁,有3*3=9个点.现在要求所有图案中经过的点的个数再[m,n]这个范 ...

  5. vivo2020届春季校园招聘在线编程考试--[编程题]vivo智能手机产能

    vivo2020届春季校园招聘在线编程考试--[编程题]vivo智能手机产能 题目 解题思路 代码块 题目 在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升. 假 ...

  6. vivo2020届春季校园招聘在线编程考试--[编程题]数位之积

    vivo2020届春季校园招聘在线编程考试--[编程题]数位之积 题目 解题思路 代码块 题目 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 现给定任意正 ...

  7. vivo2020届春季校园招聘在线编程考试 [编程题]vivo智能手机产能 C++实现

    [编程题]vivo智能手机产能 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也 ...

  8. vivo2020届春季校园招聘在线编程考试 [编程题]数位之积 C++实现

    [编程题]数位之积 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个 ...

  9. vivo2020届春季校园招聘在线编程考试

    1/3 [编程题]手机屏幕解锁模式 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 现有一个 3x3 规格的 Android 智能手机锁屏程序和两个正整数  ...

最新文章

  1. linux命令history
  2. Linux文件预读对系统的影响
  3. 17届中职计算机应用基础,西安交通大学17年3月课程考试《计算机应用基础》作业考核试题...
  4. WiFi(网络)调试Android手机
  5. 追求代码质量: 不要被覆盖报告所迷惑
  6. cml sml区别_如何简单清晰地描述 CAPM 在投资学中的运用,以及 CAL、CML 和 SML 的关系和区别?...
  7. Openssl多个安全补丁简易分析危害及修复方案
  8. 如何删除 R 中的异常值
  9. 电驴服务器更新的作用,怎样更新eMule(电驴)服务器列表,有什么好处?
  10. 小红书七夕营销攻略,玩出新花样(内附小红书推广方案干货)
  11. 【图像处理】非线性滤波
  12. 计算机二级本科免修,计算机二级证书可以免考自考的哪些科目?
  13. 2017年加密货币进入国际金融体系
  14. 人工智能到底属自动化 还是计算机专业,人工智能有哪些专业,前景如何
  15. 函数的隐式声明 及 rsp,rbp,被调用者和调用者保存的寄存器standerd manuel(Caller/Callee - saved registers)
  16. STemWin中显示中文与图片
  17. 分析了 6000 款 App,竟有这么多佳软神器没用过
  18. 微信收到消息很慢无法连接服务器,为什么微信接收消息总会延迟?4个原因要注意,解决方法在这里...
  19. 常用数字设计仿真工具(QuestaSim,VCS,IUS,Verdi等)使用入门
  20. 关键帧动画html例子,关键帧 | @keyframes

热门文章

  1. 汽车美容快修店如何快速拓客-云上铺汽车管理软件
  2. Mac FortiClient VPN一直连接不上?正确的安装步骤来了!
  3. matlab simulink波特图,用simulink画波特图
  4. 微型计算机及接口技术笔记,自考微型计算机及其接口技术笔记串讲汇总.docx
  5. 或许你想要的画图工具在这里
  6. mos计算机考试有用吗,mos微软认证考试到底有没有作用?
  7. docker打包java微服务,并上传镜像至harbor仓库
  8. hdu1869 六度分离 (floyed模板题)
  9. 智慧市政解决方案-最新全套文件
  10. 织梦网站翻页php,Dedecms织梦如何实现键盘翻页的功能