百度程序题目----连续数问题--- 另解
2010-05-19 19:38
274 查看
/**
* 百度之星程序大赛第一题
* @author tiger
* @date : 2010年5月19日
*/
public class baidu {
/**
* 返回从i到j的和
* 等差数列求和公式
*/
private int qiuhe(int i, int j)
{
return ((i + j) * (j - i + 1)) / 2;
}
/**
* 主要逻辑在这里
*/
private void action(int n)
{
int m = n / 2 +1;
for (int i = 1; i <= m; i++) {
for (int j = i + 1; j <= m; j++) {
if(qiuhe(i,j) == n)
{
print(i,j,n);
}
}
}
}
/**
* 输出结果
*/
private void print(int i, int j, int n)
{
String str = "";
for (int k = i; k <= j; k++) {
str += k + " + ";
}
str = str.substring(0, str.length() - 3) + " = " + n;
System.out.println(str);
}
/**
* 程序入口
*/
public static void main(String[] args) {
new baidu().action(120);
}
}
/*打印结果如下:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 = 120
22 + 23 + 24 + 25 + 26 = 120
39 + 40 + 41 = 120
*/
* 百度之星程序大赛第一题
* @author tiger
* @date : 2010年5月19日
*/
public class baidu {
/**
* 返回从i到j的和
* 等差数列求和公式
*/
private int qiuhe(int i, int j)
{
return ((i + j) * (j - i + 1)) / 2;
}
/**
* 主要逻辑在这里
*/
private void action(int n)
{
int m = n / 2 +1;
for (int i = 1; i <= m; i++) {
for (int j = i + 1; j <= m; j++) {
if(qiuhe(i,j) == n)
{
print(i,j,n);
}
}
}
}
/**
* 输出结果
*/
private void print(int i, int j, int n)
{
String str = "";
for (int k = i; k <= j; k++) {
str += k + " + ";
}
str = str.substring(0, str.length() - 3) + " = " + n;
System.out.println(str);
}
/**
* 程序入口
*/
public static void main(String[] args) {
new baidu().action(120);
}
}
/*打印结果如下:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 = 120
22 + 23 + 24 + 25 + 26 = 120
39 + 40 + 41 = 120
*/
相关文章推荐
- 百度程序题目----连续数问题
- 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死, 问每个月的兔子对数为多少?
- 【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。
- HDU_5690_all X -- 百度程序之星的一个题目
- (编程题目)约瑟夫问题(实用C++编出一个程序解决约瑟夫问题)--凌风
- 2005年百度之星程序大赛初赛题目(连续正整数)
- 【程序11】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- [已解决]Delphi XE10 Android 程序引用百度定位Jar包后, 某些手机上闪退的问题
- 【程序1】 TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, //假如兔子都不死,问每个月的兔子总数为多少?
- 程序1:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。(百度面试题)
- 百度题目--TOP K问题
- 今天百度程序竞赛的题目
- 百度笔试题——找出程序中的错误(关于中文字符赋值给char时它是一个负数的问题),今天我是做错了!悲剧了!
- boost官方文档中聊天程序连续发包崩溃问题
- 100楼层2个手机问题及其推广(百度面试题目)
- 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,
- 百度面试题——最大连续数字串问题
- 100楼层2个手机问题及其推广(百度面试题目)
- 开发微信小程序遇到的一些问题