2

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

 2 years ago
source link: https://blog.51cto.com/u_15535648/5155832
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、问题描述

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

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

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

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

二、题目要求

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

三、问题分析

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

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

四、编码实现

#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=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";
				}	
			}
		}
	}
	return 0;
}

五、输出结果

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

算法题每日一练---第17天:猜灯谜_数学思想


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK