题解 | #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;
}
全部评论

相关推荐

神哥不得了:神哥来啦~自我评价和校园经历的话可以直接删了,从大厂暑期的话应该没有什么太多问题,应该是能拿到很多大厂面试机会的,就是在面试的时候表示的好一点就行,可以在面试前先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股,这两个项目的话问题不是很大,应该能够帮你找到大厂实习的,算法的话一定要刷起来,因为大厂有些还是比较看重算法的
点赞 评论 收藏
分享
评论
9
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务