whytree

导航

 

穷举法

遭遇解方程问题时,考虑穷举法,但注意穷举法一定要确定穷举范围

题目一

一辆卡车违反交通规则,撞人后逃跑,现场有三人目击事件,但都没有记住车只记下车号的一些特征。
甲说:牌照的前两位数字是相同的;
乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是位数学家,他说:四位的车号刚好是一个整数的平方。
请根据以上线索求出车号。

#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;
}
posted on 2026-01-18 20:47  why_tree  阅读(0)  评论(0)    收藏  举报