您的位置:首页 > 其它

搜索路上的一把辛酸泪,入门搜索题

2015-07-17 16:31 337 查看
第一道独立做出来的搜索题,虽然很艰难,但毕竟是开始,祝自己早日摆脱题解

没有难度,只有空格控制和换行需要注意。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int flag[10], a[5], k1, k2, k;
bool found(int yu[])
{
int i;
for(i = 0; i < 10; i++)
{
if(yu[i]!=0)
return 0;
}
return 1;
}
void ax(int be)
{
int i, j;
if(found(flag))
{
if(a[0]!=k1&&k2!=0)
{
printf("\n");
}
if(a[0]==k1)
printf(" ");
for(i = 0; i < 4; i++)
printf("%d",a[i]);
k1 = a[0];
k2 = 1;
return;
}
for(i = be; i < 4; i++)
{
for(j = 0; j < 10; j++)
{
if(i==0&&j==0)
continue;
if(flag[j])
{
a[i] = j;
flag[j]--;
ax(i + 1);
flag[j]++;
}
}
}
}
int main()
{
int i, x, y, m, n;
while(scanf("%d%d%d%d", &x, &y, &m, &n),x!=0||y!=0||m!=0||n!=0)
{
if(k != 0)
printf("\n");
k = 1;
k1 = 10;
k2 = 0;
memset(flag,0,sizeof(flag));
memset(a,0,sizeof(a));
flag[x]++;
flag[y]++;
flag
++;
flag[m]++;
ax(0);
printf("\n");
}
return 0;
}


---恢复内容结束---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: