公众号做 视频网站,4在线做网站,安卓studio制作一个简单app,提高网站打开速度2017 国赛c/c B组填空题集合平方十位数由0~9这10个数字不重复、不遗漏#xff0c;可以组成很多10位数字。这其中也有很多恰好是平方数#xff08;是某个数的平方#xff09;。比如#xff1a;1026753849#xff0c;就是其中最小的一个平方数。请你找出其中最大的一个平方数…2017 国赛c/c B组填空题集合平方十位数由0~9这10个数字不重复、不遗漏可以组成很多10位数字。这其中也有很多恰好是平方数是某个数的平方。比如1026753849就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少注意你需要提交的是一个10位数字不要填写任何多余内容。答案9814072356(17分) 分析:可以深搜 import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class Main{static Scanner sc new Scanner(new BufferedInputStream(System.in));static PrintWriter out new PrintWriter(new BufferedOutputStream(System.out));static boolean[] bok new boolean[12];static int []dig new int[12];static long res0;static void dfs(int now){if(now11){long ans0;for(int i1;i10;i)ans ans*10dig[i];if((long)Math.sqrt(ans)*(long)Math.sqrt(ans)ans){res Math.max(ans, res);}return;}for(int i0;i10;i){if(!bok[i]){bok[i] true;dig[now] i;dfs(now1);bok[i] false; }}}public static void main(String[] args){dfs(1);out.println(res);out.flush();}
} 也可以枚举 从9876543210~1023456789 也可以判断出最小的平方数的大小 然后开跟不断 在平方 判断是否符合条件或者从用最高的平方数开跟上界-- 枚举平方数开跟的范围 会更小然后可以用set判断是否是十个数