7744
一、问题描述
输出所有形如aabb的4位完全平方数
二、输入格式
无
三、输出格式
四、样例输入
五、样例输出
六、思路
要求输出的数满足两个条件
- 完全平方数
- 满足千位与百位相等,十位与个位相等
所以有两种选择,先满足条件1再满足条件2,或者先满足条件2再满足条件1.显而易见前者更容易一点。
七、代码
- java
import java.util.*;
public class Main{
public static void main(String[] args) {
//法一:i逐个增加,保证i*i是四位数,判断i*i是否满足条件
int i = 30;
while(true) {
int res = (int)Math.pow(i,2);
if( res >= 10000) {
break;
}
if((res/1000 == (res/100)%10)&&(( res/10)%10 == res%10)) {
System.out.println(res);
}
i++;
}
//法二:穷举所有aabb型的数,判断是否为玩去哪平方数
}
}
- C++
#include <iostream>
int main(){
int i = 30;
int res = 0;
while(true){
res = i*i;
//结束条件
if(res>=10000){
break;
}
if(res >= 1000){
if( ((res/1000)==((res/100)%10))
&& (((res/10)%10) == (res%10)) ){
std::cout << res << std::endl;
}
}
i++;
}
}
八、总结
先思考,后动手。
穷举法也是有技巧的