穷举法
遭遇解方程问题时,考虑穷举法,但注意穷举法一定要确定穷举范围。
题目一
一辆卡车违反交通规则,撞人后逃跑,现场有三人目击事件,但都没有记住车只记下车号的一些特征。
甲说:牌照的前两位数字是相同的;
乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是位数学家,他说:四位的车号刚好是一个整数的平方。
请根据以上线索求出车号。
#include<iostream>
using namespace std;
int main() {
for(int i = 32; i <= 99; i++) //穷举法一定要确定变量范围
{
int num = i * i;
int a = num / 1000;
int b = (num / 100) % 10;
int c = (num / 10) % 10;
int d = num % 10;//将条件一一列出
if(a == b && c == d && a != c) {
cout << num ;
}
}
return 0;
题目二
36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖。
要求一次全搬完,问男、女、小孩有多少?
#include<iostream>
using namespace std;
int main()
{
int x, y, z;
for(x = 0; x <= 9; x++)
{
for(y = 0; y <= 12; y++)
{
z = 36 - x - y;
if(z >= 0 && 8*x + 6*y + z == 72)
{
cout << x << " " << y << " " << z ;
}
}
}
return 0;
}
浙公网安备 33010602011771号