古堡算式 结果填空
2018-03-23 22:58
267 查看
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!
参考答案:21978
本人思路:纯暴力,缺点:代码冗长。
作者思路:
ABCDE不用五个变量表示,直接k:(10234-50000),判断每位不同也是用了一个flag数组标记,取每一位则是用while循环里面,对大数取余,然后再取商。这是一种经典的编程风格。
参考答案代码:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!
参考答案:21978
本人思路:纯暴力,缺点:代码冗长。
#include<iostream> using namespace std; int main(){ int A,B,C,D,E; for(A=1;A<=9;A++){ for(B=0;B<=9;B++){ for(C=0;C<=9;C++){ for(D=0;D<=9;D++){ for(E=1;E<=9;E++){ for(int x=1;x<=9;x++) { if(A!=B&&A!=C&&A!=D&&A!=E&&B!=C&&B!=D&&B!=E&&C!=D&&C!=E&&D!=E){ if((A*10000+B*1000+C*100+D*10+E)*x==(E*10000+D*1000+C*100+B*10+A)){ cout<<A<<B<<C<<D<<E<<endl; } } } } } } } } }
作者思路:
ABCDE不用五个变量表示,直接k:(10234-50000),判断每位不同也是用了一个flag数组标记,取每一位则是用while循环里面,对大数取余,然后再取商。这是一种经典的编程风格。
参考答案代码:
#include<stdio.h> void main(){ int k,t1 ,t; for(k=10234;k<50000;k++){ bool flag[10]={0}; t=k; t1=0; while(t){ if(flag[t%10]) break ; flag[t%10] = true ; t1 = t1*10 + t%10 ; t /= 10 ; } if( t==0 && t1%k==0){ printf("%d * %d = %d\n",k,t1/k,t1); } } }
相关文章推荐
- 蓝桥杯 结果填空 古堡算式 超级暴力
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 古堡算式(结果填空)
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛题目 古堡算式 结果填空
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 凑算式(结果填空)
- 2013年第四届蓝桥杯C/C++程序设计本科B组省赛 马虎的算式(结果填空)
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 凑算式(结果填空)
- 蓝桥杯结果填空——马虎的算式
- 2013年第四届蓝桥杯C/C++程序设计本科B组省赛 马虎的算式(结果填空)
- 蓝桥杯 第三届C/C++预赛真题(2) 古堡算式(数学题)
- 蓝桥杯-结果填空之排座位
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 加法变乘法(结果填空)
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 奖券数目(结果填空)
- 计蒜客 结果填空:加减乘
- 简单的计算器 ~~ 呼呼 支持 +-/* () 运算 输入 算式 就得到结果 栈 ~~
- java 蓝桥杯 03凑算式(数字填空)
- 2-2012年第三届蓝桥杯CC++程序设计本科B组省赛 奇怪的比赛(结果填空)
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 三羊献瑞(结果填空)
- 2013年第四届蓝桥杯C/C++程序设计本科B组省赛 第39级台阶(结果填空)
- 第四届蓝桥杯第39级台阶(结果填空)
- 古堡算式