NYOJ794
来源:互联网 发布:如何在淘宝上申请退款 编辑:程序博客网 时间:2024/05/02 04:23
纪念邮票
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
邮局最近推出了一套纪念邮票,这套邮票共有 N 张,邮票面值各不相同,按编号顺序为1分,2分,···,N分。
小杭是个集邮爱好者,他很喜欢这套邮票,可惜现在他身上只有M 分,并不够把全套都买下。他希望尽量买,最好刚好花光所有钱。作为一个集邮爱好者,小杭也不想买的邮票编号断断续续。所以小杭打算买面值 a 分至 b 分的 b-a+1 张连续的邮票,且总价值刚好为 M 分。
你的任务是求出所有符合要求的方案,以[a,b]的形式输出。
- 输入
- 输入只有一行,包含两个数N和M(1≤N,M≤10^9)。
- 输出
- 输出每行包含一个合法方案:[a,b]。按a值从小到大输出。
输出结果不包含任何空格。 - 样例输入
20 15
- 样例输出
[1,5][4,6][7,8][15,15]
import java.util.*;import java.math.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int a,b,x,y; int n=in.nextInt(); int m=in.nextInt(); int sqrt_2M=(int)Math.sqrt(2*m+0.5)+1; for(int i=sqrt_2M;i>=1;i--){ if(2*m%i==0){ x=2*m/i; y=i; if(x-y==-1)continue; if((x+y-1)%2==0)b=(x+y-1)/2; else continue; if((x-y+1)%2==0)a=(x-y+1)/2; else continue; if((a+b)*(b-a+1)==2*m) System.out.println("["+a+","+b+"]"); } } }}
//解方程
0 0
- NYOJ794
- nyoj794纪念邮票
- php学习笔记之 array+array 和 array_merge
- 【Java】Java基础知识1. 继承、多态、重载和重写
- UVa-10891 Game of Sum ACM解题报告(递推O(n^2)算法)
- Unicode中文和特殊字符的编码范围
- HDOJ 题目4707 Pet(DFS)
- NYOJ794
- 在开发测试中使用HBaseMiniCluster
- 书面计划优点
- 第三章 字符串、向量和数组
- 使用TestNG-xslt美化测试报告
- java实现单线程客户端与服务器端一问一答方式对话
- 设计模式之状态模式(c++)
- Android性能优化典范
- DataGridView 列中添加进度条