有1 2 3 4 5 五个数字,用代码生成5位数,如“12345,32112”,要求 4 不能出现在第2位,3不能和5相连,如

有1 2 3 4 5 五个数字,用代码生成5位数,如“12345,32112”,要求 4 不能出现在第2位,3不能和5相连,如“11135”,打印出所有可能。
java代码实现

//这题用深度搜索做起来很简单的
// 好多烫.cpp : 定义控制台应用程序的入口点。
//

//#include "stdafx.h"

#include<iostream>
#include<string.h>
using namespace std;
const int MAX=10005;

int a[5];
bool ok()
{
if(a[1]==4)return false;
int i;
for(i=0;i+1<5;i++)
{
if(a[i]==3&&a[i+1]==5)return false;
if(a[i]==5&&a[i+1]==3)return false;
}
return true;
}
void DFS(int deep)
{
int i;
if(deep==5)
{
if(ok())
{
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
puts("");
}
return ;
}
for(i=1;i<6;i++)
{
a[deep]=i;
DFS(deep+1);
}
}
//int _tmain(int argc, _TCHAR* argv[])
int main()
{
DFS(0);
return 0;

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-27
#include<stdio.h>

void main()
{
int a=11111;
for(;a<=55555;a++)
if(a/1000%10!=4&&a%100!=35&&a/10%100!=35&&a/100%100!=35&&a/1000%100!=35&&a%100!=53&&a/10%100!=53&&a/100%100!=53&&a/1000%100!=53)
printf("%-6d",a);

}本回答被网友采纳
第2个回答  2011-12-27
33333,22222,111111......
第3个回答  2011-12-27
56
相似回答