蓝桥杯~古堡算式 您所在的位置:网站首页 357怎么写算式 蓝桥杯~古堡算式

蓝桥杯~古堡算式

2024-07-01 19:25| 来源: 网络整理| 查看: 265

见证自己成长

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

ABCDE * ? = EDCBA

他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”

华生:“我猜也是!”

于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把 ABCDE 所代表的数字写出来。

答案写在“解答.txt”中,不要写在这里

解法一思路:将一个五位数逆序之后和原数字再进行 “原数字 * 一个数 = 逆序数 ”的运算,在逆序过程中,为了保证每个数字都不同,故意将有相同数字的五位数的逆序数变成0,使得判断条件不满足而无法输出。同时为了实现逆序,自己写了一个pow函数

*

总体来说:

自我感觉自己的代码很笨重,很多多余的东西有种被题目牵着鼻子走的感觉,只是读懂表面,然后完全按照题目表面意思实现,没有去分析它的本质,导致计算好复杂,循环次数也很多自我批评自我告诫,也提醒可能会有同样问题的你

*

//我自己的解法 #include using namespace std; int pow( int x,int n) { int y = x; if( n == 0) return 1; //满足一个数的零次幂为1 for(int i = 0; i < n - 1; i++) x *= y; return x; } int Reverse(int x,int sum ) { sum = 0; int a[6]; for(int i = 4; i >= 0; i--) { int n; a[i] = x % 10; x /= 10; for(int j = 4; j > i; j--) //判断是否有重复 if(a[i] == a[j]) return 0; //故意将有重复数字的逆序数变成0 sum += a[i] * pow(10,i); } return sum; } int main(void) { int x,sum; for( int x = 10000; x


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有