忽明忽暗
走廊里有 n 盏灯,编号依次为 1,2,3,…,n,由学校电路控制中心管理。初始时,所有灯都是关闭的。某黑客入侵了学校电路控制中心,黑客想让灯忽明忽暗,进行了 n 轮操作。第 i 轮操作,会让所有编号为 i 的倍数的灯状态反转,也就是打开的变为关闭,关闭的变为打开。现在黑客想知道,n 轮操作后,所有亮着的灯的编号之和为多少。因为答案很大,只需输出答案对 10^9+7 取模的结果。

思路:模拟一下可以发现最后只有完全平方数的灯是亮的,因为只有完全平方数的因子是奇数个,所以该题就是求前 sqrt(n)项平方数和。

前 n 项平方数的和 公式为: ans = n * (n + 1 ) * (2 * n + 1 ) / 6
由于 ans 很大 且 a / b % c != a % c / b % c ,所以除以6 我们分解为 2 * 3 , n * ( n + 1 ) 一定是偶数, 再判断 n * ( n + 1 ) 是否为 3 的倍数 , 如果不是,那么 n 和 n + 1 均不是 3 的倍数 那么 n % 3 == 1,如果 n % 3 == 1 的话 那么 2 * n + 1 一定是被 3 整除的。
综上可得:

 if( n * (n + 1) % 3 == 0){sum = n * (n + 1) / 6 % mod * (2 * n + 1) % mod;}else{sum = n * (n + 1) / 2 % mod * (2 * n + 1 ) / 3 % mod;}

代码:

#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
int main()
{long long n;cin >> n;long long  m = sqrt(n);long long  ans = m * (m + 1) / 2;if(ans % 3 == 0){ans = ans / 3 % mod * (2 * m + 1) % mod;}else{ans = ans % mod * (2 * m + 1) / 3 % mod ;}cout << ans << endl;return 0;
}

求前n项平方数的和模板相关推荐

  1. 【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和

    存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和 使用python编程语言解题: 使用typescript编程语言解题: 使用Go语言进行解题: 由题可以得知,分子是前一个 ...

  2. Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数

    例如,4.9以及16都是平方数,找到一种有效方法,使程序能快速运行 题目 破题 特别提醒 代码 题目 *10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数.平方数是指形式为n^2 ...

  3. c++中求前n项和(这代码不得不让我佩服)

      今天在牛客网上刷题,遇到了这道题,最后我看到一位大佬的代码让我感觉的还差很多!!! 题目   求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等 ...

  4. 数组求前n项和 和 求中间n项和 学习记录

    树状数组求前n项和 和 求中间n项和 学习记录 树状数组主要是靠lowbit函数,具体的是原码反码补码巧夺天工的想法,想要了解的可以百度一下. lowbit = ()=>{return x&am ...

  5. python有一分数序列求前20项和答案_求分数序列前20项和matlab

    有一个分数序列1/2,2/3,3/5,5/8,8/13,13/21.求这个序列的前20项之和.C语言编程 #includeintmain(void){inta=1,b=2,i;doublesum=0; ...

  6. 有一分数序列求前20项和答案c语言,用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求这个数列的前20项之和....

    用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,-求这个数列的... 3个答案  提问时间: 2010-12-22  2个赞 回答:1.首先弄清楚这组分数序列的规律:从 ...

  7. c语言求前15项中偶数项的和,偶数前n项和

    初中数学相较于小学数学,在内容.难度等方面均有提高,因此在学生学习中,很多家长不知道怎样去辅导孩子学习数学,今天小编整理了偶数前n项和,仅供参考! 1  等差数列的奇数项的前n项和和偶数的前n项和怎么 ...

  8. 一文解决斐波那契数列求前n项和;和求第n个数是多少的问题;斐波那契数列(Fibonacci)又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……

    题目:斐波那契数列(Fibonacci)又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)= 0,F(1) ...

  9. 程序设计与算法3-5:求前n项和

    问题 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n 输入 t 输出 前n项和 思路 边界条件:n==1        1 递归函数:fac(n) 递归关系:fac( ...

最新文章

  1. 求均值方差_协方差,方差,标准差
  2. docker 查看容器ip
  3. python 3 5的值_python3 语言特性5
  4. FPGA实战操作(1) -- SDRAM(Verilog实现)
  5. goim 中的 data flow 数据流转及思考
  6. 扎克伯格、张一鸣的技术“原罪”
  7. Go一个协程实现加法demo
  8. make: *** 没有规则可制作目标“distclean”。 停止。_最全攻略资料|普华永道PwC(四大笔试)游戏测试GBA经验分享(图片+规则+建议)...
  9. 计算机进入局域网共享,win10打开局域网共享的四个步骤——亲测有效
  10. RHEL7设置默认启动图形化界面
  11. 如何设置电脑的固定IP地址
  12. 使用plotly画地图
  13. Android存储子系统
  14. 小型电子管通用计算机103机,中国第一台电脑
  15. 计算机网络笔试面试题目大全
  16. Uniswap社区3号提案近200万美元预算昨日到账,这笔钱要怎么花?
  17. 重装系统后开机黑屏显示cannot load file怎么办
  18. 做好SEO必备的三步骤
  19. 开发微信小程序:设置某个页面为启动后打开的第一个页面
  20. #1408 : The Lastest Time

热门文章

  1. 巧压 Qiaozip 一键卸载批处理程序
  2. NG-ZORRO表格多列联动筛选
  3. 【miscellaneous】星光级超低照度摄像机技术分析
  4. C之奇淫技巧——宏的妙用
  5. win10系统谷歌浏览器实现鼠标滚轮切换标签
  6. PS显示暂存盘已满情况解决
  7. project server 2007 安装说明(有截图)
  8. 最新苹果手机iphone x拆机报告图解(图文)
  9. 网络安全之社工攻击的防护
  10. SLAM数学篇:问题表述