2031:[例4.17]四位完全平方数
这个四位数有两个特点:
1.前两位上的数字相同,后两位上的数字也相同。
2.这个四位数是一个数的平方倍。
我的思路如下(不懂可以看一看)
1.我们可以算出31×31=961,32×32=1024,既然都不能构成四位完全平方数,那我们就从33开始穷举 吧,一直穷举到99,因为100^2=10000。
2.利用循环来控制一个两位数,用一个变量(可用a)来算这个两位数的平方倍。
3.用四个变量(可用b,c,d,e)分别求出这个四位数的四位上的数。
4.判断b是否等于c,d是否等于e。如果两个条件都满足,那么恭喜你,找到这个数了,然后输出就可以了。反之,如果不满足则继续列举,直到满足为止。
好了,说了这么多,上程序!
#include<bits/stdc++.h>//答案为7744(88^2)
using namespace std;
int main()
{int a,b,c,d,e,i;for(i=33;i<=99;i++)//第一步 {a=i*i;//第二步 b=a%10;c=a/10%10;d=a/100%10;e=a/1000%10;//第三步 if(b==c&&d==e){cout<<a<<endl;//如果对了,直接输出 (第四步的倒数第二句)。 }/* else{continue;//如果不对,则继续循环(第四步的最后一句)。 } */ }return 0;
}
还有,有一段程序可删除,你看出来了吗?
else{continue;//如果不对,则继续循环(第四步的最后一句)。 }
就是这段,相信聪明的你已经看出来了。
这是作者的原版程序
#include<bits/stdc++.h>//答案为7744(88^2)
using namespace std;
int main()
{int a,b,c,d,e,i;for(i=33;i<=99;i++) {a=i*i; b=a%10;c=a/10%10;d=a/100%10;e=a/1000%10; if(b==c&&d==e){cout<<a<<endl; 。 }}return 0;
}
好了,对于这道题还不理解的程序猿们,可以私信作者,或评论一下,作者会尽快回复。
如果觉得不错,可以关注一下(看到加重的“可以”了吗,有木有觉得本作者很“银杏”?)