n = int(input()) for i in range(n): num = input().strip() l = len(num) if l == 1: if num == '0' or num == '1' or num == '2': print(1) else: print(0) elif l % 2 == 0: a = int(num[:l//2]) b = int(num[l//2:]) if b - a == 1: if int(num) == (a+b)*2: print(2) else: print(1) else: print(0) else: a = int(num[:l//2]) b = int(num[l//2:]) if b - a == 1: if int(num) == (a+1)10(l//2) + a + 1: print(2) else: print(1) else: print(0

【问题描述】 若一个正整数有 2n 个数位后 n 位组成的数恰好比前 n 位组成的数大 1则这个数称为增一数。例如 34、2526、233234 都是增一数。如果这个数还是某个数的平方则称为平方增一数。你的任务就是判断任一给定正整数是否平方增一数。【输入形式】 输入在第一行中给出一个正整数N ≤100随后 N 行每行给出一个不超231 的待判定的正整数。【输出形式】 对每个待判

原文地址: http://www.cveoy.top/t/topic/fh9f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录