上文:http://blog.csdn.net/battle_Elf/archive/2006/08/29/1137670.aspx
上次给出了我的解法,我曾说过只要将某里面(到底哪里,自己去看上文:))的算法修改一下就可以了,这里给出我的代码
#include<math.h>
void output( int StartNum, int i )
{
int k;
for( k = 0; k < i; k++ )
{
printf("%d ", StartNum + k );
}
putchar('/n');
}
int main()
{
int n,i,j,Sum;
printf( "请输入待切割的正整数/n" );
scanf( "%d", &n );
putchar( '/n' );
if( n <= 0 )
{
printf( "错误!请输入正整数" );
return 1;
}
for( i = 1; i <= n / 2; i++ )
{
Sum = 0;
for( j = i; ; j++ )
{
Sum += j;
if( Sum == n )
output( i, j - i + 1 );
if( Sum >= n )
break;
}
}
return 0;
}
2层循环,代码虽然比原先的那种方法少,但速度好像没有那个快。