编写一个程序,利用参数传入一个3位数n,找出101~n间所有满足下列两个条件的数:它是完全平方数,又有两位数字相同,如144、676等,用c语言作答
时间: 2024-12-20 16:23:10 浏览: 19
你可以使用C语言编写一个程序,通过遍历指定范围内的每个数,并检查其是否为完全平方数和是否有两位数字相同。这里是一个简单的示例:
```c
#include <stdio.h>
#include <math.h> // 引入sqrt函数
// 判断一个数是否为完全平方数
int isPerfectSquare(int num) {
int root = (int)sqrt(num);
return root * root == num;
}
// 检查一个数的十位和个位是否相等
int hasDuplicateDigits(int num) {
if (num >= 10 && num <= 99) {
return num % 10 == num / 10; // 十位和个位相等
} else {
int first_digit = num / 100;
int second_digit = num % 10;
return first_digit == second_digit; // 如果是三位数,仅检查最后两位
}
}
// 主函数,接收用户输入的3位数n
int main() {
int n;
printf("请输入一个3位数n:");
scanf("%d", &n);
for (int i = 101; i <= n; ++i) { // 从101开始到用户输入的n
if (isPerfectSquare(i) && hasDuplicateDigits(i)) {
printf("%d ", i); // 打印找到的符合条件的数
}
}
return 0;
}
阅读全文