• C++千题千解 | P1348 Couple number(洛谷)


    目录

    题目

    答案

    结语


    题目

    1. 题目描述
    2. 对于一个整数 nn,若存在两个自然数 x, yx,y,满足 n = x^2 - y^2n=x
    3. 2
    4. −y
    5. 2
    6. ,则称 nn 是 Couple number
    7. 给出 a,ba,b,请求出 [a, b][a,b] 范围内有多少个 Couple number
    8. 输入格式
    9. 输入只有一行两个整数,分别表示 a, ba,b。
    10. 输出格式
    11. 输出一行一个整数表示答案。
    12. 输入输出样例
    13. 输入 #1
    14. 1 10
    15. 输出 #1
    16. 7

    嘿嘿,超简单的数学题!!!

    算法分析

    step 1:a^2-b^2=(a+b)(a-b)=>a+b与a-b奇偶性相同

    step 2:所以(a+b)(a-b)要么是奇数,要么是4的倍数

    step 3:couple number要么是奇数,要么是4的倍数

    step 4:验证:若n=2k-1,则(a+b)(a-b)=2k-1

    a+b=2k-1, a-b=1, a=k, b=k-1正确!

    若n=4k,则(a+b)(a-b)=4k, a+b=2k, a-b=2, a=k+1, b=k-1正确!

    (温馨提示)题目说是整数,而非正整数,所以不用特判!

    答案

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. int n1,n2,i,ans=0;
    6. cin>>n1>>n2;
    7. for(i=n1;i<=n2;i++) if(i%4==0||i%2!=0) ans++;
    8. cout<
    9. return 0;
    10. }

    结语

    那么这期就到此为止,下期再见,拜拜……(说实话,最近的博文的确有点水,没办法,网课所迫,但你们放心,什么时候放假了,就给你们一篇上古佳作!!!)

    PS:没想到这道题这么简单,竟然还有二分之一的人没有过,这真是太不可思议了,说实话,我看到测试点范围时也被吓了一跳,但,经过我聪明的理解,其实,范围是“假”的,呃,如果不“假”好像也入不了“普及-”……下期写什么,你们写在评论区吧,我是真的懒得去翻洛谷,所以,就拜托大家啦,好了不说了,我们下一篇再见,ヾ( ̄▽ ̄)Bye~Bye~!!!

  • 相关阅读:
    长难句5.15
    [附源码]JAVA毕业设计课外创新实践学分认定管理系统(系统+LW)
    双向链表的知识点+例题
    什么是Nginx?
    多维度梳理 MySQL 锁
    【计算机取证篇】Windows禁用驱动程序签名教程
    Unity中PICO中手柄按键返回值
    网络协议--链路层
    vue中pc端大屏怎么进行rem适配(lib-flexible + postcss-plugin-px2rem)
    SpringBoot如何优雅的进行参数校验
  • 原文地址:https://blog.csdn.net/zyxtjzys/article/details/127681945