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

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

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

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 关注
  • 1482 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号