aabb完全平方数

Description

输出所有形如aabb的4位完全平方数 (即前两位数字相等,后两位数字也相等)。

Input

无需输入

Output

输出时,一行一个,最后一行输出总的个数。

HINT

完全平方数是指一个数可以表示为另一个整数的平方。例如,4、9、16等都是完全平方数,因为它们可以分别表示为2²、3²、4²。

python解法

count = 0  # 计数器,用于记录满足条件的数的数量

for i in range(1000, 10000):  # 遍历1000到9999之间的所有整数
    sqrt_i = int(i ** 0.5)  # 计算i的平方根并取整数值
    if sqrt_i * sqrt_i != i:  # 如果i不是完全平方数,则跳过
        continue
    
    # 提取千位、百位、十位和个位数字
    thousands = i // 1000
    hundreds = (i // 100) % 10
    tens = (i // 10) % 10
    ones = i % 10
    
    # 检查千位和百位是否相同,以及十位和个位是否相同
    if thousands == hundreds and tens == ones:
        print(i)  # 如果条件满足,则打印该数
        count += 1  # 计数器加1

print(count)  # 打印满足条件的数的总数

c++解法

#include <iostream>
#include <cmath> // 引入cmath库以使用sqrt函数

using namespace std;

int main() {
    int count = 0; // 计数器,用于记录满足条件的数的数量

    for (int i = 1000; i <= 9999; ++i) {
        int sqrt_val = static_cast<int>(sqrt(i)); // 计算i的平方根并取整数值
        if (sqrt_val * sqrt_val != i) {
            // 如果i不是完全平方数,则跳过当前循环的剩余部分
            continue;
        }

        int thousands = i / 1000; // 提取千位数
        int hundreds = (i / 100) % 10; // 提取百位数
        int tens = (i / 10) % 10; // 提取十位数
        int ones = i % 10; // 提取个位数

        if (thousands == hundreds && tens == ones) {
            // 如果千位和百位相同,且十位和个位相同,则输出该数并增加计数器
            cout << i << endl;
            count++;
        }
    }

    cout << "Total count: " << count << endl; // 输出满足条件的数的总数

    return 0; // 程序正常结束
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
THE END