0
点赞
收藏
分享

微信扫一扫

算法题每日一练---第17天:猜灯谜

一、问题描述

A 村的元宵节灯会上有一迷题:

请猜谜 * 请猜谜 = 请边赏灯边猜

小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。

请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。

二、题目要求

考察

1.循环判断,判重,数学思想
2.建议用时10~15min

三、问题分析

题目要求出满足上面式子的一个三位正整数,思路很清晰,三重for循环,循环0~9十个数字,第一重循环0不能充当首位,三个整数的数字不一样。

设置三个整数的位数分别为i,j,k,平方之后判断是否为6位数字,i=sum/100000 && j=sum%10,那么最后的sum就是平方之后的结果。

四、编码实现

```c++
#include<iostream>
#include<math.h>//平方的头文件
using namespace std;
int main()
{
int i,j,k;
for(i=1;i<=9;i++)//第一重for循环
{
for(j=0;j<=9;j++)//第二重for循环
{
for(k=0;k<=9;k++)//第三重for循环
{
int sum=i100+j10+k;//求出三个数字
sum=pow(sum,2);//平方
if(sum>=100000&&i==sum/100000&&j==sum%10)//判断条件
{
cout<<i<<j<<k<<" ";//输出结果
cout<<sum<<"\n";
}
}
}
}
return 0;
}


## 五、输出结果

因为这是一道填空题,符合条件的数字比较少,所以不用加太多的判断条件,直接看输出结果就可以。
其中,第2 4 5 6个数字有两个相同的数字,第三个数字平方之后的位数要求不相等的也相等。
所以,结果为897。

![1.png](https://s4.51cto.com/images/blog/202203/29093214_6242619e10ce144061.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
举报

相关推荐

0 条评论