HDU 2058 The sum problem

等差求和公式:

Sn=(a1+aN)*n/2
    =(a1+a1+d(n-1))*n/2
    =a1*n+d(n-1)*n/2;
因为此处公差d=1,所以Sn=a1*n+(n-1)*n/2,当从第一项开始算起时(因本题首项为1,即a1=1时),Sn=M时的项的个数n最多;
a1=1,现在又可化简为Sn=n+(n-1)*n/2=(n+1)n/2;
由题意得M=Sn,N为项的个数,则N<=n(max)=sqrt(Sn*2)=sqrt(M*2);
因此原式M=Sn =a1*n+(n-1)n/2=a1*N+(N-1)N/2,可得a1*N=M-(N-1)N/2;
数据都已经全了,现在只要遍历n(max)以内项数中,Sn=M的个数即可。
那么如何判断Sn=M呢?也就是判断a1*N=Sn-(N-1)N/2;得到的a1*N这个数能否被N整除,因为整除的话,说明首项存在于序列

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(){
  4. int N,M;
  5. while(scanf("%d%d",&N,&M),N||M){
  6. int len = (int)sqrt(M*2.0);
  7. int a1_len=0;//首项a1与len的乘积
  8. for (;len>0;len--){
  9. a1_len=M-(len-1)*len/2;//a1*N=M-(N+1)N/2;
  10. if(a1_len%len==0){
  11. printf("[%d,%d]\n",a1_len/len,a1_len/len+len-1);
  12. }
  13. }
  14. puts("");
  15. }
  16. return 0;
  17. }

2058(等差求和)相关推荐

  1. 了解递归算法,等差求和,阶乘

    以最经典的等差求和为例吧,求和1+2+3+4+5+6+.... def sum_numbers(num):# 1.如果是1,直接返回1 -- 出口if num == 1:return 1# 2.如果不 ...

  2. 序列求和 直接print(sum(range(n+1)))最后会有一两个例子超时,可以选用等差求和

    资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 求1+2+3+-+n的值. 输入格式 输入包括一个整数n. 输出 ...

  3. Educational Codeforces Round 47 (Rated for Div. 2) :C. Annoying Present(等差求和)

    题目链接:http://codeforces.com/contest/1009/problem/C 解题心得: 题意就是一个初始全为0长度为n的数列,m此操作,每次给你两个数x.d,你需要在数列中选一 ...

  4. python的基础算法实现(等差求和,阶乘)

    这里记录的代码均为核心,不带交互,有些不考虑无效输入 力求最省资源,用最快捷的实现方式 等差数列求和 #等差数列求和 n*(a1+an)/2 x1 = 1 d = 3 n = 100 x100 = x ...

  5. [M数学] lc1759. 统计同构子字符串的数目(数学+等差求和)

    文章目录 1. 题目来源 2. 题目解析 1. 题目来源 链接:1759. 统计同构子字符串的数目 2. 题目解析 分析题目,连续字符串对答案的贡献实际上是 等差数列求和 即可,采用双指针求出连续字符 ...

  6. HDU 4407 Sum(容斥+等差求和)

    题目大意:给n个数,1-n.然后有m次操作,分别是求(x,y)中与p互质的和:将第x个数替换成c. 思路:一开始觉得区间操作往线段树上想,但是要存的东西太多,没有办法实现. 后面其实仔细一想跟前面几道 ...

  7. 密码*** ,continue,等差求和

    import getpass# user = input("username:")# password = getpass.getpass(prompt="passwor ...

  8. hdu 1597 find the nth digit(等差求和+二分)

    find the nth digit Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. 等差求和-公式+大数long long(蓝桥)

    问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值. 样例输入 4 样例输出 10 样例输入 100 说明:有一 ...

最新文章

  1. python视频教程从入门到精通全集-python从入门到精通视频(全60集)免费高速下载...
  2. HtmlAgilityPack 之 HtmlNode类
  3. 【转】3.3SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)
  4. Storm精华问答 | storm与Hadoop有什么区别?
  5. 笨方法“学习python笔记之print换行
  6. 转走出MFC窗口子类化迷宫
  7. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...
  8. Luogu1904 天际线
  9. python学习笔记之读取pdf文件库pdfminer(二)
  10. linux 开机密码忘了,linux系统开机忘记密码
  11. xampp使用教程方法免费分享
  12. 计算机硬盘应该什么格式化,硬盘应该格式化成哪种格式为好?
  13. 2021年北京邮电大学计算机12组(原网研二组)夏令营面试经历
  14. 使用 TiUP 部署 DM 集群
  15. 如果用户没上传头像,则为其设置默认用户头像
  16. webpack打包、js处理兼容性、代码压缩问题Uncaught SyntaxError: Cannot use import statement outside a module (at index
  17. 使用原生js写一个简单的注册登录页面
  18. 霸屏三大综艺 小度强势破圈引发“胜利者效应”
  19. firefly-rk3288j开发板 eDP实验之NV101WXM-N51显示屏驱动
  20. java-极光短信以及通知回调整合

热门文章

  1. USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析(七)
  2. 如何完成一张机房3d效果图
  3. 说说308,华泰股份
  4. La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2016 A~F
  5. 高性能计算平台基本知识
  6. 测试员在面试中被问到 “你对加班的看法” 该如何回答?
  7. 英雄联盟补刀精灵LOL Last Hit最新破解版下载
  8. android banner广告接入,仅涉及技术
  9. VirtualBox+Vargant快速使用以及vagrant up下载centos慢解决办法
  10. 概率统计中的样本矩和顺序统计量