c++打卡第九天
一、问题描述。
有一辆撞人逃逸的车辆,有三人目击他的车牌号,其中一人说 它的前两数是相同的,零一人说它的后两位是相同的,第三个人说,这四位数是一个整数的平方,如何求解这个车牌号。
二、设计思路。
①、对于此类求解问题,需要采用穷举法,对这个车牌号进行开方是否为一个整数,如果是,则这个车牌号正确。
②、用循环逐次相加两个不同数的值。
③、穷举出平方为四位数的数,即从32到99,问是否有数等于此时这个车牌号码,如果有,打印出这个车牌号。
④、其实穷举更多只会增加运行时间,我们可以调用库函数math,并且对这个计算完的,车牌号进行开方。
⑤、如果这个开方得到的数值减去这个数值强制类型转换为int类型后为0,说明这时候存在一个整数的平方等于这时候的车牌号,这样就可以大大减少计算量。
三、流程如。
四、代码实现。
#include<iostream> #include<cmath> using namespace std; int main() { int a,b,k; int cp; for(a=0;a<10;a++) { for(b=0;b<10;b++) { if(a!=b) { cp=a*1000+a*100+b*10+b; double k=sqrt(double(cp)); if(k-int(k)==0) { cout<<"此时k为:"<<int(k)<<endl; cout<<"车牌号为:"<<int(cp)<<endl; } } } } return 0; }
五、代码实现。