题解 | #Almost Correct#

Link with Checksum

https://ac.nowcoder.com/acm/contest/57356/A

E题题解#

解题思路:

从\sqrt{n}开始枚举,每一次枚举都要乘以十倍。

代码如下:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

int main() {

ll y, k, t, x; bool b = 1;

cin >> t;
while (t--) {
    cin >> x;
    k = x;
    b = 1;
    for (int i = 0; i <= 9; i++) {
        y = ceil(sqrt(k));
        ll m = pow(y, 2) / pow(10, i);//转化成ll类型
        if (m == x) {//两者相等满足条件
            b = 0;//已找到y记录下来
            break;
        }
        k *= 10;
    }
    if (!b) cout << y;
    else cout << "-1";
    cout << "\n";
}
cin >> x;
return 0;
}
全部评论

相关推荐

10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
9 收藏 评论
分享
牛客网
牛客企业服务