题解 | #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-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
9 收藏 评论
分享
牛客网
牛客企业服务