专栏文章

题解:P11496 [ROIR 2019 Day 1] 完全平方

P11496题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqlhhbc
此快照首次捕获于
2025/12/04 06:45
3 个月前
此快照最后确认于
2025/12/04 06:45
3 个月前
查看原文

SolutionSolution

本题分为几种情况讨论:
如果k=0k=0输出00
如果k>0k>0那么把k\sqrt k11的部分枚举一遍即可
如果k<0k<0kk 取绝对值,和 k>0k>0 一样,只不过最后需要取相反值
一定要加nonenone的情况!!!

ACcodeAC code

CPP
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int k;
signed main()
{
    cin>>k;
    if(k==0){
        cout<<0;//特判
        return 0;//注意要结束,不然第一个样例就错!!
    }
    else{
        for(int i=sqrt(abs(k));i>0;i--){
            if(k%i==0&&i%2==(abs(k)/i)%2){
                if(k>0)cout<<(k/i+i)/2;
                if(k<0) cout<<(-k/i-i)/2;
                return 0;//不管什么时候都要加结束
            }
        }
    }
    cout<<"none"<<endl;//没有的情况
    return 0;
}//完结撒花

评论

0 条评论,欢迎与作者交流。

正在加载评论...