当前位置: 首页 > news >正文

洛谷——P1348 Couple number

P1348 Couple number

题目描述

任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number。你的工作就是判断一个数N是不是Couple number。

输入输出格式

输入格式:

 

仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。

 

输出格式:

 

输出在n1到n2范围内有多少个Couple number。

注意:包括n1和n2两个数,且n1<n2,n2 - n1 <= 10 000 000。

 

输入输出样例

输入样例#1:  复制
1 10
输出样例#1:  复制
7




打表找规律
1    1
2    1
3    2
4    3
5    4
6    4
7    5
8    6
9    7
10    7
11    8
12    9
13    10
14    10
15    11
16    12
17    13
18    13
19    14
20    15
21    16
22    16
23    17
24    18
25    19
26    19
27    20
28    21
29    22
30    22

规律:

1  1  2  3

4  4  5  6

7  7  8  9

所以s=n/4*3+n%4-1  (n%4>1')

  s=n/4*3+n%4     (n%4<=1)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
using namespace std;
int f1,f2;
LL read()
{
    LL x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*f;
}
LL work(LL n)
{
    if(n%4<=1) return n/4*3+n%4;
    return n/4*3+n%4-1; 
}
int main()
{
    LL a=read(),b=read(),ans;
    if(a>0) f1=1;else f1=-1;
    if(b>0) f2=1;else f2=-1;
    a=abs(a),b=abs(b);
    if(a>b) swap(a,b); 
    if(f1*f2>0) 
    {
        LL ans1=work(a-1),ans2=work(b);
        ans=abs(ans1-ans2);
    }
    else 
    {
        LL ans1=work(a),ans2=work(b);
        ans=ans1+ans2+1;
    }
    printf("%lld",ans);
    return 0;
}

 

转载于:https://www.cnblogs.com/z360/p/7846659.html

相关文章:

  • Java MongoDB基本操作
  • 用SHELL脚本来防SSH和vsftpd暴力破解(第②版)
  • 8.10 shell特殊符号cut命令
  • ckeditor body与P标签去除
  • es6中新增的常用数值扩展
  • 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 1、两层神经网络的单样本向量化表示与多样本向量化表示...
  • 华为产品升级及打补丁具体步骤
  • 职场中的那点事--享受“无间道”
  • java基础-基本数据类型
  • 介绍UbuntuServer
  • 信息化建设者的愿景,诚意与信念
  • 书籍
  • 微软私有云分享(R2)18Windows Azure Pack 命令行安装
  • ss
  • 优化javaScript代码,提高执行效率
  • 分享的文章《人生如棋》
  • bearychat的java client
  • C++类中的特殊成员函数
  • css布局,左右固定中间自适应实现
  •  D - 粉碎叛乱F - 其他起义
  • gf框架之分页模块(五) - 自定义分页
  • Linux各目录及每个目录的详细介绍
  • nodejs实现webservice问题总结
  • Python实现BT种子转化为磁力链接【实战】
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • XML已死 ?
  • 免费小说阅读小程序
  • 如何编写一个可升级的智能合约
  • 自定义函数
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ###C语言程序设计-----C语言学习(6)#
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • ( 10 )MySQL中的外键
  • (3)llvm ir转换过程
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (转)菜鸟学数据库(三)——存储过程
  • (转)德国人的记事本
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • @staticmethod和@classmethod的作用与区别
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [C/C++]数据结构----顺序表的实现(增删查改)
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [English]英语积累本
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [HTML]Web前端开发技术29(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [Java][Android][Process] ProcessBuilder与Runtime差别
  • [js]- 两个对象的合并(Object.assign)
  • [JS]JavaScript 简介