• 排列平方数


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

    若干不同的数字,排列组合后能产生多少个平方数?
    下面的代码解决了这个问题。
    对于: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     }


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

  • 相关阅读:
    Gym 100418J Lucky tickets(数位dp)
    UI各种小控件的用法
    安卓系统底层C语言算法之測试參数是几个long型的算法
    Chisel Tutorial(一)——Chisel介绍
    java中super的作用
    flume採集数据导入elasticsearch 配置
    UML中的序列图(时序图)
    简单的Queue
    UNIX环境高级编程(5):文件I/O(1)
    四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享
  • 原文地址:https://www.cnblogs.com/wsxjbky/p/3056703.html
Copyright © 2020-2023  润新知