问题在这里:
http://twobug.cnblogs.com/archive/2005/09/30/247550.html
我的代码:
http://twobug.cnblogs.com/archive/2005/09/30/247550.html
我的代码:
<
SCRIPT LANGUAGE
=
"
JavaScript
"
>
<!--
/*
题目描述:
一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
solved by Neil Chen, 2005-10-1
*/
// 解决问题
function solve(k) {
var result = new Array();
for ( var m = 1 ; m < k / 2 ; m ++ ) {
for ( var n = m + 1 ; n <= (k + 1 ) / 2 ; n ++ ) {
if ((m + n) * (n - m + 1 ) / 2 == k)
result[result.length] = [m, n];
}
}
return result;
}
// 打印结果
function printResult(result) {
if (result.length > 0 ) {
for ( var i = 0 ; i < result.length; i ++ ) {
for (j = result[i][ 0 ]; j <= result[i][ 1 ]; j ++ ) {
document.write(j + " " );
}
document.write( " <br/> " );
}
}
else {
document.write( " NONE " );
}
}
// 测试
document.write( " solve 15:<br/> " );
printResult(solve( 15 ));
document.write( " <br/> " );
document.write( " solve 16:<br/> " );
printResult(solve( 16 ));
// -->
</ SCRIPT >
<!--
/*
题目描述:
一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
solved by Neil Chen, 2005-10-1
*/
// 解决问题
function solve(k) {
var result = new Array();
for ( var m = 1 ; m < k / 2 ; m ++ ) {
for ( var n = m + 1 ; n <= (k + 1 ) / 2 ; n ++ ) {
if ((m + n) * (n - m + 1 ) / 2 == k)
result[result.length] = [m, n];
}
}
return result;
}
// 打印结果
function printResult(result) {
if (result.length > 0 ) {
for ( var i = 0 ; i < result.length; i ++ ) {
for (j = result[i][ 0 ]; j <= result[i][ 1 ]; j ++ ) {
document.write(j + " " );
}
document.write( " <br/> " );
}
}
else {
document.write( " NONE " );
}
}
// 测试
document.write( " solve 15:<br/> " );
printResult(solve( 15 ));
document.write( " <br/> " );
document.write( " solve 16:<br/> " );
printResult(solve( 16 ));
// -->
</ SCRIPT >