为了账号安全,请及时绑定邮箱和手机立即绑定

程序输入若干互不相同的数字,经过排列组合能产生多种不同的数值,那些是平方数

程序输入若干互不相同的数字,经过排列组合能产生多种不同的数值,那些是平方数

xaioxiao__ 2016-09-22 20:55:51
程序输入若干互不相同的数字,经过排列组合能产生多种不同的数值,求所有可能的值中,那些是平方数。例:1,6,9排列后,可产生3个平方数:169196961
查看完整描述

2 回答

?
JustWannaHugU

TA贡献452条经验 获得超796个赞

public class  Test {  
    public static void f(int[] a, int n) {  
        if (n == a.length - 1) {  
            int k = 0; // 把a里的数字组合为一个数字k  
            for(int i=0; i<a.length; i++) k = k*10 + a[i]; 
            int m = (int) (Math.sqrt(k)+0.5);  
            if (m * m == k) {  
                System.out.println(k);  
            }  
            return;  
        }  
        // 全排列  
        for (int i = n; i < a.length; i++) {  
            int t = a[n];  
            a[n] = a[i];  
            a[i] = t;  
              
            f(a, n+1); 
              
            t = a[n];  
            a[n] = a[i];  
            a[i] = t;  
        }  
    }  
    public static void main(String[] args) {  
        int[] a = { 1, 9, 6 };  
        f(a, 0);  
    }  
}


查看完整回答
1 反对 回复 2016-09-23
  • 2 回答
  • 0 关注
  • 1386 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信