一、问题描述
A 村的元宵节灯会上有一迷题:
请猜谜 * 请猜谜 = 请边赏灯边猜
小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。
请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。
二、题目要求
考察
循环判断,判重,数学思想 建议用时10~15min
三、问题分析
题目要求出满足上面式子的一个三位正整数,思路很清晰,三重for循环,循环0~9十个数字,第一重循环0不能充当首位,三个整数的数字不一样。
设置三个整数的位数分别为i,j,k,平方之后判断是否为6位数字,i==sum/100000 && j==sum%10,那么最后的sum就是平方之后的结果。
四、编码实现
//平方的头文件 usingnamespacestd; intmain() { inti,j,k; for(i=1;i<=9;i++)//第一重for循环 { for(j=0;j<=9;j++)//第二重for循环 { for(k=0;k<=9;k++)//第三重for循环 { intsum=i*100+j*10+k;//求出三个数字 sum=pow(sum,2);//平方 if(sum>=100000&&i==sum/100000&&j==sum%10)//判断条件 { cout<<i<<j<<k<<" ";//输出结果 cout<<sum<<"\n"; } } } } return0; }
五、输出结果
因为这是一道填空题,符合条件的数字比较少,所以不用加太多的判断条件,直接看输出结果就可以。 其中,第2 4 5 6个数字有两个相同的数字,第三个数字平方之后的位数要求不相等的也相等。 所以,结果为897。