古堡算式
2017-02-19 09:02
176 查看
福尔摩斯到某古堡去探险,看到门上写了一个奇怪的算式:
ABCDE*?=EDCBA
他对毕生说:“ABCDE” 每个字母都应该代表不同的数字
华生说我猜也是!
于是两人沉默好久
还是没有算出合适的结果
请你利用计算机的优势,找到破解的答案
把ABCDE所代表的数字列出来
答案
:2 1 9 7 8
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int a[10];
int book[10];
int check()
{
int flag=1;
int A=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4];
int B=a[4]*10000+a[3]*1000+a[2]*100+a[1]*10+a[0];
for(int i=1;i<10;i++)
{
if((A*i)==B)
{
flag=0;
break;}
}
if(!flag)
return 1;
return 0;
}
void dfs(int step)
{
if(step==5)
{
if(check()==1)
{
printf("%d %d %d %d %d",a[0],a[1],a[2],a[3],a[4]);
}
return ;
}
for(int i=1;i<10;i++)
{
if(book[i]==0)
{
a[step]=i;
book[i]=1;
dfs(step+1);
book[i]=0;
}
}
return ;
}
int main()
{
dfs(0);
return 0;
}
ABCDE*?=EDCBA
他对毕生说:“ABCDE” 每个字母都应该代表不同的数字
华生说我猜也是!
于是两人沉默好久
还是没有算出合适的结果
请你利用计算机的优势,找到破解的答案
把ABCDE所代表的数字列出来
答案
:2 1 9 7 8
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int a[10];
int book[10];
int check()
{
int flag=1;
int A=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4];
int B=a[4]*10000+a[3]*1000+a[2]*100+a[1]*10+a[0];
for(int i=1;i<10;i++)
{
if((A*i)==B)
{
flag=0;
break;}
}
if(!flag)
return 1;
return 0;
}
void dfs(int step)
{
if(step==5)
{
if(check()==1)
{
printf("%d %d %d %d %d",a[0],a[1],a[2],a[3],a[4]);
}
return ;
}
for(int i=1;i<10;i++)
{
if(book[i]==0)
{
a[step]=i;
book[i]=1;
dfs(step+1);
book[i]=0;
}
}
return ;
}
int main()
{
dfs(0);
return 0;
}
相关文章推荐
- 古堡算式
- 2012蓝桥杯预赛试题本科c++古堡算式
- 古堡算式
- 蓝桥杯:古堡算式
- 大竟-历届卷-三-2-古堡算式
- 古堡算式
- 古堡算式
- 古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA
- 古堡算式
- 古堡算式
- 蓝桥杯 历届试题 古堡算式,微生物繁殖
- 第三届蓝桥杯C++组 古堡算式
- 古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA
- 古堡算式
- 古堡算式
- 古堡算式
- 蓝桥杯--2012--古堡算式(暴力)
- 第三届蓝桥杯软件类省赛真题-C-A-2_古堡算式
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛题目 古堡算式 结果填空
- 古堡算式--蓝桥杯