您的位置:首页 > 其它

百度程序题目----连续数问题--- 另解

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
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐