[蓝桥杯2017决赛]平方十位数-枚举+set去重
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯2017决赛]平方十位数-枚举+set去重
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
由0~9這10個數字不重復、不遺漏,可以組成很多10位數字。
這其中也有很多恰好是平方數(是某個數的平方)。
比如:1026753849,就是其中最小的一個平方數。
請你找出其中最大的一個平方數是多少?
輸出
輸出一個整數表示答案
知識點:
注意:
記得開longlong!!!
代碼如下:
#include <iostream> #include <set> #include <cmath> using namespace std; typedef long long LL;bool check(LL x) {set<int>s;while (x) {s.insert(x % 10);x = x / 10;}if (s.size() == 10)return true;return false; }int main() {for (LL i = 9999999999; i; i--) {LL c = sqrt(i);//記得開long long,如果用int就涼了if (c * c == i && check(i)) {cout << i << endl;return 0;}}return 0; }總結
以上是生活随笔為你收集整理的[蓝桥杯2017决赛]平方十位数-枚举+set去重的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何自定义CAD线型
- 下一篇: [召集令]-Dijkstra的单源最短路