HDOJ2058_The sum problem
来源:互联网 发布:matlab求解矩阵方程组 编辑:程序博客网 时间:2024/05/21 08:44
Problem Description
Given a sequence 1,2,3,......N, your job is to calculate all the possible sub-sequences that the sum of the sub-sequence is M.
Input
Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.
Output
For each test case, print all the possible sub-sequence that its sum is M.The format is show in the sample below.print a blank line after each test case.
Sample Input
20 1050 300 0
Sample Output
[1,4][10,10][4,8][6,9][9,11][30,30]
题目大意:从1到n的范围内,公差为1的数列的和是m 的数列,输出[a1,an],每组之间空一行
本题需要用到等差数列的公式
import java.util.Scanner;public class P2058 {private static Scanner scanner;public static void main(String[] args) {scanner = new Scanner(System.in);while(scanner.hasNext()){int n = scanner.nextInt();int m = scanner.nextInt();if(n==0 && m==0){break;}// 从a 开始, 一直加到sqrt(2*m) > m//也就是 a是a1,i是an //sqrt()函数要求传入的是double类型数字 for (int i = (int) Math.sqrt(2 * m); i >= 1; i--) {int a = (m - (i * (i - 1)) / 2) / i;if (m == a * i + (i * (i - 1)) / 2) {System.out.println("[" + a + "," + (a + i - 1) + "]");}}System.out.println();}}}/* * 超时: * while(scanner.hasNext()){int n = scanner.nextInt();int m = scanner.nextInt();if(n==0 && m==0){break;}int sum = 0;for (int i = 1; i <= n; i++) {sum = i;if(sum == m){System.out.println("["+i+","+i+"]");break;}for (int j = i+1; j <= n; j++) {sum += j;if(sum == m){System.out.println("["+i+","+j+"]");break;}if(sum>m){break;}}} * */
阅读全文
0 0
- HDOJ2058_The sum problem
- Sum Problem
- Sum Problem
- sum problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- sum problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- Sum Problem
- centos设置双网卡绑定band0
- 论成长的可持续性
- 设计模式【代理模式Proxy Pattern】
- 一些算法岗的校招面经
- JVM之垃圾收集器与内存分配策略
- HDOJ2058_The sum problem
- CSerialPort类
- codeforces869EThe Untended Antiquity(二维树状数组)
- Java手写线程池实现
- PM2 常用命令
- 将本地文件上传至GitHub
- 几种常用范数与距离的关系
- 基于Qt的进程类QProcess启动本地Chrome浏览器
- luogu P1019 单词接龙 【dfs】