19
从第一个“ n”数字取零
挑战 面临的挑战是编写一个代码,该代码以正整数“ n”作为输入,并显示所有可能的方式来写入从1到n的数字,并在两者之间使用正号或负号,以使它们的总和为等于零。请记住,您只能使用加法或减法。 例如,如果输入为3,则有两种方法使总和为0: 1+2-3=0 -1-2+3=0 请注意,数字是有序的,从1到n(在这种情况下为3)开始。从示例中可以明显看出,第一个数字的符号也可以为负,因此请小心。 现在,3非常简单。让我们在考虑数字7时列出所有方式。 1+2-3+4-5-6+7=0 1+2-3-4+5+6-7=0 1-2+3+4-5+6-7=0 1-2-3-4-5+6+7=0 -1+2+3+4+5-6-7=0 -1+2-3-4+5-6+7=0 -1-2+3+4-5-6+7=0 -1-2+3-4+5+6-7=0 因此,在这里,我们总共有8种可能的方式。 输入输出 如前所述,输入将为正整数。您的输出应包含所有可能的方法,使数字总和为零。万一没有办法做同样的事情,您可以输出任何您喜欢的东西。 另外,您可以按自己喜欢的任何格式打印输出。但是,这应该是可以理解的。例如,您可以按照上面的示例进行打印。或者,您可以只按顺序打印数字的符号。否则,您也可以按顺序打印“ 0”和“ 1”,其中“ 0”显示负号,“ 1”显示正号(反之亦然)。 例如,您可以使用以下方式表示1 + 2-3 = 0: 1+2-3=0 1+2-3 [1,2,-3] ++- 110 001 但是,为简单起见,我建议使用前三种格式中的任何一种。您可以假定所有输入均有效。 例子 7 -> 1+2-3+4-5-6+7=0 1+2-3-4+5+6-7=0 1-2+3+4-5+6-7=0 1-2-3-4-5+6+7=0 -1+2+3+4+5-6-7=0 -1+2-3-4+5-6+7=0 -1-2+3+4-5-6+7=0 -1-2+3-4+5+6-7=0 4 -> 1-2-3+4=0 …