• 排列平方数


    /*
    题目:排列平方数
    内容:

    若干不同的数字,排列组合后能产生多少个平方数?
    下面的代码解决了这个问题。
    对于:1,6,9
    排列后,可产生3个平方数:
    169
    196
    961

    请阅读下面的代码,填写缺失的部分(下划线部分)。

    注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应

    题号的“解答.txt”中即可。
    直接写在题面中不能得分。


    public class My
    {
    public static void f(int[] a, int n)
    {
    if(n==a.length-1)
    {
    int k = 0;
    for(int i=0; i<a.length; i++) k = ____________ + a[i]; // 填空1
    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, _______________); // 填空2

    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     public class pro15
     2     {
     3         public static void f(int[] a, int n)
     4         {
     5             if(n==a.length-1)
     6             {
     7                 int k = 0;
     8                 for(int i=0; i<a.length; i++) k = k*10 + a[i];   // 填空1
     9                 int m = (int)(Math.sqrt(k)+0.5);
    10                 if(m*m==k)
    11                 {
    12                     System.out.println(k);
    13                 }
    14                 return;
    15             }
    16             
    17             for(int i=n; i<a.length; i++)//这个递归应该是遍历了几个数的全排列,但真的没有理解,
    18             {
    19                 int t = a[n];//这里做了一个交换,如果把初始值[1,9,6]带进去的话,就是a[0]与a[0]交换,
    20                 a[n] = a[i];
    21                 a[i] = t;
    22                 
    23                 f(a, n+1);        // 填空2
    24                 
    25                 t = a[n];
    26                 a[n] = a[i];
    27                 a[i] = t;
    28             }
    29         }
    30         
    31         public static void main(String[] args)
    32         {
    33             int[] a = {1,9,6};        
    34             f(a, 0);
    35         }
    36     }


    /*
      递归,真没理解清楚,
    */

  • 相关阅读:
    Unity 3D 一个简单的角色控制脚本
    Unity3D 纹理偏移(TextureOffset)浅析
    递归函数的原理
    彻底搞定 C/C++ 指针
    zygote的分裂
    SystemServer分析
    Zygote原理学习
    Vmware Linux虚拟机磁盘扩容方法
    Ubuntu12.04 64bit版本下载Android源码完整教程
    Android2.2源码属性服务分析
  • 原文地址:https://www.cnblogs.com/wsxjbky/p/3056703.html
Copyright © 2020-2023  润新知