牛客一戰到底程式設計挑戰—兔子的序列
阿新 • • 發佈:2020-12-17
技術標籤:牛客網刷題系列
題目描述 兔子發現了一個數字序列,於是開始研究這個序列。兔子覺得一個序列應該需要有一個命名,命名應該要與這個序列有關。由於兔子十分討厭完全平方數,所以兔子開創了一個新的命名方式:這個序列中最大的不是完全平方數的數字就是他的名字。
現在兔子有一個序列,想要知道這個序列的名字是什麼。輸入描述: 第一行一個整數 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