题解:P11496 [ROIR 2019 Day 1] 完全平方
mishitaotuoyyds · · 题解
题目分析:
首先观察题目中的说的序列
- 如果
k=0 直接输出0 。 - 如果
k\ge1 就用枚举法,枚举从\sqrt{k} 一直到1 就好了。 -
如果
k\leq-1 先用和k\ge1 一样的方法最后再取相反值。参考代码:
#include <bits/stdc++.h> using namespace std; long long k; int main() { cin>>k; if(k==0){ cout<<0; return 0; } else{ for(int i=sqrt(abs(k));i>=1;i--){ if(k%i==0&&i%2==(abs(k)/i)%2){ if(k<0)cout<<(-k/i-i)/2; else cout<<(k/i+i)/2; return 0; } } } cout<<"none"; return 0; }完结撒花。