简单枚举算法(simple enumeration)

枚举算法(穷举),是指在一个有穷的、可能的解集合中,枚举出集合中的每一个元素,判断该元素是否符合题目的检验条件,得出解集。
枚举法是一种搜索算法,即对问题的所有可能解状态进行一次遍历。

例如:邮箱密码是3位数,最高位是6,并且能被18整除,问这个密码是?

一、枚举法求质数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;

int main(){
    long long m;
    cin>>m;
    bool IsPrime=1;
    for (int i = 2; i*i <m; i++){
        if(m%i==0){
        IsPrime=0;
        break;
        }
    }
    if(IsPrime)
        cout<<"yes";
    else
        cout<<"no";
return 0;
}

二、求满足下面等式的a,b,c的取值(a,b,c取值范围:1<a,b,c<100)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <iostream>
using namespace std;

int main(){
    int a,b,c;
    for (int a=1; a < 100; a++){
        for ( b = a;  b<100; b++){
            for (c=b; c < 100; c++)            {
                if((1+a)*(1+b)*(1+c)==2*a*b*c)
                    cout<<a<<' '<<b<<' '<<c<<endl;
            }
        }
    }
}

NOIP2010数字统计 (P1179)

题目描述

请统计某个给定范围 [L,R] 的所有整数中,数字 2 出现的次数。

比如给定范围 [2,22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 11 次,在数 21 中出现 11 次,在数 22 中出现 22 次,所以数字 2 在该范围内一共出现了 6 次。

输入格式

2 个正整数 L 和 𝑅,之间用一个空格隔开。

输出格式

数字 2 出现的次数。

输入输出样例:

输入: 2 100 输出:20

说明/提示

1≤LR≤100000。

Scroll to Top