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

目录

题目

答案

结语


题目

题目描述
对于一个整数 nn,若存在两个自然数 x, yx,y,满足 n = x^2 - y^2n=x 
2
 −y 
2
 ,则称 nn 是 Couple number。

给出 a,ba,b,请求出 [a, b][a,b] 范围内有多少个 Couple number。

输入格式
输入只有一行两个整数,分别表示 a, ba,b。

输出格式
输出一行一个整数表示答案。

输入输出样例
输入 #1
1 10
输出 #1
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正确!

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

答案

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n1,n2,i,ans=0;
    cin>>n1>>n2;
    for(i=n1;i<=n2;i++) if(i%4==0||i%2!=0) ans++;
    cout<<ans<<endl;
    return 0;
}

结语

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

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

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值