Matlab(86)
x=input('');X=perms(1:6);disp(char(X(find(sum(abs(diff(x(X).')))==input(''),1),:)+64))
存在解决方案的示例:
>> x=input('');X=perms(1:6);disp(char(X(find(sum(abs(diff(x(X).')))==input(''),1),:)+64))
[0, 5, 7, 13, 16, 17]
62
DBFAEC
>>
不存在解决方案的示例:
>> x=input('');X=perms(1:6);disp(char(X(find(sum(abs(diff(x(X).')))==input(''),1),:)+64))
[0, 5, 7, 13, 16, 17]
100
>>
Matlab(62)
如果可以通过产生位置而不是字母来放宽输出格式,并且如果不存在解决方案,则产生一个空矩阵:
X=perms(input(''));X(find(sum(abs(diff(X.')))==input(''),1),:)
存在解决方案的示例:
>> X=perms(input(''));X(find(sum(abs(diff(X.')))==input(''),1),:)
[0, 5, 7, 13, 16, 17]
62
ans =
13 5 17 0 16 7
不存在解决方案的示例:
>> X=perms(input(''));X(find(sum(abs(diff(X.')))==input(''),1),:)
[0, 5, 7, 13, 16, 17]
62
ans =
Empty matrix: 0-by-6
Matlab(54)
如果程序提供所有有效路径是可接受的:
X=perms(input(''));X(sum(abs(diff(X.')))==input(''),:)
存在解决方案的示例:
>> X=perms(input(''));X(sum(abs(diff(X.')))==input(''),:)
[0, 5, 7, 13, 16, 17]
62
ans =
13 5 17 0 16 7
13 5 16 0 17 7
13 0 17 5 16 7
13 0 16 5 17 7
7 16 5 17 0 13
7 16 0 17 5 13
7 17 5 16 0 13
7 17 0 16 5 13
[0, 5, 7, 13, 16, 17]
和62
)的程序,这样做可能会更好,这样您就可以确保它没有针对这种情况进行专门的硬编码。