7对数字排序,请帮忙看下
题目为有7对数字,一对1,一对2,一对3,。。一对7;要求两个1之间有1个数,两个2之间有2个数,两个3之间有三个数。。。两个7之间有7个数
例如:74****4*7*****
我想了下找不到用代码来实现,想用笔来实现又太难了,能不能给个思路,如果代码和思路都有的话就太感谢了
#include <stdio.h> void foo( unsigned mask[static 14], unsigned pair ) { if( pair == 8 ) { for( size_t i=0; i!=14; ++i ) printf( "%u%c", mask[i], i+1==14?'\n':' ' ); return; } for( size_t i=0; i+1+pair!=14; ++i ) { if( mask[i]==0 && mask[i+1+pair]==0 ) { mask[i]=pair, mask[i+1+pair]=pair; foo( mask, pair+1 ); mask[i]=0, mask[i+1+pair]=0; } } } int main( void ) { unsigned mask[14] = { 0 }; foo( mask, 1 ); return 0; }