7 | 您所在的位置:网站首页 › 指数一数你 › 7 |
若一个正整数有 2n 个数位,后 n 位组成的数恰好比前 n 位组成的数大 1,则这个数称为增一数。例如 34、2526、233234 都是增一数。如果这个数还是某个数的平方,则称为平方增一数。你的任务就是判断任一给定正整数是否平方增一数。 输入格式:输入在第一行中给出一个正整数 N(≤100),随后 N 行,每行给出一个不超过 231 的待判定的正整数。 输出格式:对每个待判定的正整数,在一行中输出判定结果:如果是平方增一数,则输出 2;如果只是普通增一数,则输出 1;如果不是增一数,则输出 0。 输入样例: 3 528529 2324 5678 输出样例: 2 1 0代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB 前导0,前导0,前导0,前导0,前导0,前导0,前导0,前导0!!!!!!! #include using namespace std; #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define endl "\n" #define pii pair #define fir first #define sec second #define int long long int dir[8][2]= {0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,-1,-1,1}; int mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int n,m,t; //string s[13]= {"","January","February","March","April","May","June","July","August","September","October","November","December"}; signed main() { cin>>n; while(n--) { int num; cin>>num; string s; s=to_string(num); if(s.size()%2==0&&s.size()!=0){ string s1=s.substr(0,s.size()/2),s2=s.substr(s.size()/2); int a=stoll(s1),b=stoll(s2),c=stoll(s); if(b-1==a){ int d=sqrt(c); if(c==d*d){ cout cout |
CopyRight 2018-2019 实验室设备网 版权所有 |