猜灯谜--蓝桥杯国赛历年真题

xiaoxiao2021-02-27  160

标题:猜灯谜     A 村的元宵节灯会上有一迷题:         请猜谜 * 请猜谜 = 请边赏灯边猜          小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。          请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。     请严格按照格式,通过浏览器提交答案。

    注意:只提交一个3位的整数,不要写其它附加内容,比如:说明性的文字。

代码:

package 历届国赛; import java.io.*; import java.util.HashSet; public class 猜灯谜 { static boolean vis[] = new boolean[10]; static void dfs(String s,int d){ if(d>2){ HashSet<Character>h = new HashSet(); int n = Integer.parseInt(s),m = n*n; String ms = String.valueOf(m); for(int j=0;j<ms.length();j++){ h.add(ms.charAt(j)); } if(ms.length() == 6 && ms.charAt(0) == s.charAt(0) && ms.charAt(5) == s.charAt(1) && ms.charAt(1) == ms.charAt(4) && ms.charAt(2) != ms.charAt(3) && h.size() == ms.length()-1){ System.out.println(s); } return; } for(int i=0;i<=9;i++){ if(!vis[i]){ vis[i] = true; d++; dfs(s+i+"",d); d--; vis[i] = false; } } } public static void main(String[] args) { // TODO Auto-generated method stub for(int i=0;i<=9;i++){ vis[i] = false; } dfs("",0); } } 结果:897

转载请注明原文地址: https://www.6miu.com/read-13928.html

最新回复(0)