我正在尝试使用这个http://gyazo.com/8190a3c98a520bbeb77335e05ea5a636(一个可视化的基本控制台应用程序)。我希望它允许用户输入一个单词,并让控制台以可能的所有间隔组合回复它,所以:
假设我正在使用单词TEST,例如它会像这样间隔开来创建:
T EST
T E ST
T E S T
TE ST
TES T
T ES T
依此类推......(例如每个组合都可以用多个空格隔开)
这可以通过控制台应用程序实现吗?
答案 0 :(得分:0)
计算时,从最低位开始。您从零开始,然后计算直到达到该数字的最高值,如下所示:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
。然后,一旦达到最高值,就必须添加第二个数字(例如10
)。然后,在再次递增第二个数字(例如20)之前,再次从最低位到最高位(例如10 - 19
)。这样,一旦到达999
,您就会以三位数字列出每个可能的值组合。
以二进制计数时,它的工作方式相同,但每个数字的最高值为1,因此您可以按照这样的最低位数进行计数:0, 1
。然后你必须添加第二个数字并再次计数:10, 11
。然后你需要添加第三个数字(例如100
)并在前两个数字上再次完成。到达111
时,您将在三位二进制数中列出1和0的每个可能组合。
因此,如果您将每个字母之间的空格视为二进制数字中的数字,其中0表示没有空格而1表示存在空格,那么您所要做的就是从0开始计数到最高值在二进制数字中,与单词长度相同的位数减去1.因此,例如,使用单词TEST
,计数将如下所示:
000
= TEST
001
= TES T
010
= TE ST
011
= TE S T
100
= T EST