实现一个函数,统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数。用c语言编写
时间: 2024-05-05 11:21:11 浏览: 155
C++算法:第 N 位数字原理、源码、测试用例
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <math.h>
int count(int a, int b) {
int cnt = 0;
for (int i = a; i <= b; i++) {
int num = sqrt(i);
if (num * num == i) { // 判断是否为完全平方数
int a = num / 10; // 十位数
int b = num % 10; // 个位数
if (a == b || a == 0 || b == 0) { // 判断是否有两位数字相同
cnt++;
}
}
}
return cnt;
}
int main() {
int a, b;
printf("输入区间范围:");
scanf("%d%d", &a, &b);
int cnt = count(a, b);
printf("区间[%d,%d]内的完全平方数中有两位数字相同的数的个数为%d\n", a, b, cnt);
return 0;
}
```
程序先输入区间范围,然后调用 `count` 函数统计区间内满足条件的完全平方数的个数,并输出结果。在 `count` 函数中,程序先使用 `sqrt` 函数计算出完全平方数的平方根,然后判断是否为完全平方数。如果是,则使用除法和取模运算得到十位数和个位数,判断是否有两位数字相同,如果满足条件,则计数器加一。最后返回计数器的值即可。
阅读全文