`

输出和为一个给定整数的所有组合

阅读更多
/*
	2)输出和为一个给定整数的所有组合
	例如n=5
	5=1+4;5=2+3(相加的数不能重复)
	则输出
	5 = 1+4
	5 = 2+3
	这里注意,不能考虑负数,否则将有无数种情况。
*/

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	unsigned long int num, mid;
	unsigned long int i;
	
	printf("请输入一个任意整数:");
	scanf("%ld", &num);
	
	/*这个if和else是核心,避免了如2+3和3+2的情况*/
	if (num % 2 == 0)
		mid = num / 2;
	else
		mid = num / 2 + 1;
	
	printf("结果:\n");
	for (i=0; i<mid; i++)
		printf("%ld = %ld+%ld\n", num, i, num-i);
		
	return 0;
}
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics