首页 > 试题广场 >

兔子的序列

[编程题]兔子的序列
  • 热度指数:6528 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
兔子发现了一个数字序列,于是开始研究这个序列。兔子觉得一个序列应该需要有一个命名,命名应该要与这个序列有关。由于兔子十分讨厌完全平方数,所以兔子开创了一个新的命名方式:这个序列中最大的不是完全平方数的数字就是他的名字。
现在兔子有一个序列,想要知道这个序列的名字是什么。

输入描述:
第一行一个整数 n,表示序列的长度。 
第二行有 n 个整数 ai,表示序列中的 n 个数分别是多少。


输出描述:
输出仅一行,表示这个序列的名字,也就是这个序列中最大的非完全平方数。
示例1

输入

2
4 2

输出

2
示例2

输入

8
1 576 2 8 32 64 4 16

输出

32

备注:
对于 50%的数据 
n = 1
对于 100%的数据 
1≤ n ≤ 1000,1 ≤ ai ≤ 1000
数据保证至少有一个非完全平方数
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] arr=new int[n];
        for(int i=0;i<n;i++)
            arr[i]=sc.nextInt();
        Arrays.sort(arr);
        int len=arr.length;
        for(int i=len-1;i>=0;i--){
            int x=(int)Math.sqrt(arr[i]);
            if(x*x!=arr[i]){
                System.out.print(arr[i]);
                break;
            }
        }
    }
}

发表于 2022-08-12 22:54:44 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] toArray = new int[n];
        for(int i = 0;i < n;i++){
            toArray[i] = scanner.nextInt();
        }
        Arrays.sort(toArray);
        for(int i = toArray.length - 1;i >= 0;i--){
            boolean toJudgeSqrt = true;
            for(int j = 2;j * j <= toArray[i];j++){
                if(toArray[i] == j * j){
                    toJudgeSqrt = false;
                    break;
                }
            }
            if(toJudgeSqrt){
                System.out.println(toArray[i]);
                return;
            }
        }
    }
}

发表于 2022-07-06 11:39:21 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n ; i++) {
            arr[i] = sc.nextInt();
        }
        Arrays.sort(arr);
        for (int i = arr.length - 1; i >= 0 ; i--) {
            boolean flag = true;
            for (int j = 2 ; j * j <= arr[i] ; j++) {
                if (arr[i] == j * j) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                System.out.println(arr[i]);
                return;
            }
        }
    }
}

发表于 2022-05-20 12:51:39 回复(0)