特殊的完全平方数(C++)
在3位整数100-999中查找符合如下条件的整数并输出:这个数既是完全平方数,又有两位数字相同,如121(11的平方)、141(12的平方);
分析:
-
首先要确定解决什么问题? 输出符合条件的整数(转换成程序设计语言就是输出一个变量)
- 问题给出要在三位整数中查找——需要一个for循环进行对100-999进行遍历,对100-999的每一个整数进行查找分析,符合条件则输出,否则跳过
- 其次看到,这个数i必须要满足的是一个完全平方数,而且还要有两位数字相同;(按部就班,顺次解决各个问题)
- 完全平方数,我们必须找到变量i的完全平方数,可以看到最大值在999,显然40的平方是1600;最小值为100;显然完全平方数的范围是10-40,我们要进行遍历,再检验是否满足第三条规则;
- 如果变量i==j*j,然后判断个位,十位,百位是否满足有两位数字相同。
#include <iostream> using namespace std; /*说明:特殊的完全平方数,在三位整数100-999 查找符合如下条件的整数并输出,这个数既是完全平方数, 又有两位数字相同,如121 */ int main(){ int i,j; int hun,ten,data; for(i=100;i<=999;++i)//遍历从100-999的所有的数字 { for(j=10;j<40;++j)//完全平方数j介于10-40之间 { if(i==j*j)//若i满足完全平方数 { hun=i/100; ten=i/10%10; data=i%10; if(hun==ten||hun==data||ten==data)//验证是否有两位数字相同并输出 cout<<i<<endl; } } } return 0; }