博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P1348 Couple number
阅读量:6235 次
发布时间:2019-06-22

本文共 1415 字,大约阅读时间需要 4 分钟。

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    12    13    24    35    46    47    58    69    710    711    812    913    1014    1015    1116    1217    1318    1319    1420    1521    1622    1623    1724    1825    1926    1927    2028    2129    2230    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
#include
#include
#include
#define LL long longusing 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

你可能感兴趣的文章
ThinkingInJava 学习 之 0000003 控制执行流程
查看>>
glValidateProgram只用于调试
查看>>
Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
查看>>
二叉排序树 -- 增删查改
查看>>
基于RocketIO的高速串行协议设计与实现
查看>>
多线程学习 ---- 系列教程
查看>>
Wireshark抓包分析TCP协议
查看>>
oracle 11g jdbc jar包在哪个文件目录
查看>>
软件架构是软件功能在技术域上的投影
查看>>
python中的lxml模块
查看>>
分布式强化学习基础概念(Distributional RL )
查看>>
.NET Core单文件发布静态编译AOT CoreRT
查看>>
RChain节点通信机制
查看>>
【python下使用OpenCV实现计算机视觉读书笔记2】图像与字节的变换
查看>>
关于metaclass,我原以为我是懂的
查看>>
Trait的使用
查看>>
obj-fit
查看>>
安装zoom
查看>>
【转】不要做聪明人
查看>>
Redis进阶实践之十四 Redis-cli命令行工具使用详解第一部分
查看>>