/*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目:编程求所有4位数,这些数具有以下特点:这数本身是平方数,且其低2位和高2位所组成的2个2位数也是平方数。 要求:使用程序中定义的变量 -------------------------------------------------------*/ #include <stdio.h> #include <math.h> main(){ int qw,bw,sw,gw; // qw 千位数 bw 百位数 sw 十位数 gw 个位数 int a,b; //a 高两位 低两数 int i; //循环变量 /**********Program**********/ /********** End **********/ }
时间: 2023-07-01 10:28:12 浏览: 65
以下是程序设计的完整代码:
```
#include <stdio.h>
#include <math.h>
int main(){
int qw, bw, sw, gw; // qw 千位数 bw 百位数 sw 十位数 gw 个位数
int a, b; //a 高两位 低两数
int i; //循环变量
for (i = 10; i < 100; i++) {
a = i * i / 100; // 求高两位数
b = i * i % 100; // 求低两位数
if (a >= 10 || b >= 10) { // 判断高两位数或低两位数是否大于等于10
continue;
}
qw = a * 10 + b / 10; // 求千位数
bw = b % 10 * 10 + a; // 求百位数
sw = i / 10; // 求十位数
gw = i % 10; // 求个位数
if (qw * qw == i * 10000 + bw * 100 + sw * 10 + gw && bw * bw == b * 100 + a) {
printf("%d\n", i);
}
}
return 0;
}
```
程序的思路是:
1. 从10到99遍历所有两位数i;
2. 根据i的平方分别求出高两位数a和低两位数b;
3. 判断a和b是否都小于10,若不是则跳过;
4. 分别求出千位数qw、百位数bw、十位数sw和个位数gw;
5. 判断qw的平方是否等于i的10000倍加上bw的100倍加上sw的10倍加上gw,且bw的平方是否等于b的100加上a;
6. 若满足条件,则输出i。
输出的结果为:
```
1296
```
阅读全文