ABC086 B - 1 21
問題はこちら
atcoder.jp
方針
と を数値として受け取るか文字列として受け取るか迷いましたが,数値だと桁数による場合分けが必要な解法しか思いつかなかったので文字列扱いにしています。
string型で受け取ってもstoi関数でint型に変換できるので便利ですね。
平方数かどうかの判定は, が整数になるかどうかで行っています。
コード
#include <bits/stdc++.h> using namespace std; int main(){ string a,b; cin>>a>>b; int a_b=0; // aの末尾にbを追加 a.append(b); a_b=stoi(a); int sqrt_ab_i=sqrt(a_b); double sqrt_ab_d=sqrt(a_b); if(sqrt_ab_i==sqrt_ab_d){ cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } }