1. 程式人生 > 其它 >牛客一戰到底程式設計挑戰—兔子的序列

牛客一戰到底程式設計挑戰—兔子的序列

技術標籤:牛客網刷題系列

題目描述 兔子發現了一個數字序列,於是開始研究這個序列。兔子覺得一個序列應該需要有一個命名,命名應該要與這個序列有關。由於兔子十分討厭完全平方數,所以兔子開創了一個新的命名方式:這個序列中最大的不是完全平方數的數字就是他的名字。
現在兔子有一個序列,想要知道這個序列的名字是什麼。

輸入描述: 第一行一個整數 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 資料保證至少有一個非完全平方數

解題思路:
遍歷陣列,將陣列和中的完全平方數賦值為0,這樣一來其餘元素都是非完全平方數,然後通過排序輸出陣列中最大的元素即可。

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int n, array[1000];
    scanf("%d", &n);
    //輸入序列
    for(int i =
0; i < n; i++){ scanf("%d", &array[i]); } //編列序列,根據完全平方數的定義,將序列中的完全平方數置零 for(int i = 0; i < n; i++){ for(int j = 0; j < 1000; j++){ if(array[i] == j * j){ array[i] = 0; } } } //用sort()函式升序排列陣列 sort(array,
array + n); //陣列中最後一個數就是所求的數 printf("%d\n", array[n - 1]); return 0; }

歡迎大家進入我們的個人部落格網站一起交流討論。http://codeingshuang.com