首页 > 编程语言 >算法学习笔记——暴力求解之枚举

算法学习笔记——暴力求解之枚举

时间:2024-04-05 22:11:48浏览次数:23  
标签:10 题目 int 算法 笔记 revx 枚举 include

算法学习笔记——暴力求解之枚举

枚举

枚举是指对每个可能的解进行逐一判断,直到找到符合题目要求的答案。枚举类的题目本身并不复杂,但在采取枚举策略之前,一定要好好的分析题目的枚举量,枚举量过大的时候,需要选择其他的解决方法。即使问题适合枚举,也要进行分析,以便通过减少部分无效的枚举来使程序更加的简洁和高效。

例题

一、abc(清华大学复试上机题)

题目

image-20240401213029881

三重循环解法

#include <iostream>
#include<cstdio>//标准输入输出,相当于stdio.h
using namespace std;

int main() {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= 9; j++) {
            for (int k = 0; k <= 9; k++) {
                if (100*i+110*j+12*k == 532) {
                    printf("%d %d %d\n",i,j,k);
                }
            }
        }
    }
}

image-20240401215330211

二、反序数(清华大学复试上机题)

题目

image-20240401215604973

一重循环解法

#include <iostream>
using namespace std;
 int R(int x){//求反序数
  int revx=0;
  while(x!=0){
  	revx *= 10;
  	revx += x%10;
  	x/=10;
  }
  return revx;
 }
int main() {
  for(int i=1000;i<=9999;i++){
  	if(i*9==R(i)){
	  	printf("%i\n",i);
	  }
  }
}
// 64 位输出请用 printf("%lld")

image-20240401223132395

四重循环解法

#include <iostream>
using namespace std;

int main() {
    int a, b, c, d;
    for (int a = 1; a <= 9; a++) {
        for (int b = 0; b <= 9; b++) {
            for (int c = 0; c <= 9; c++) {
                for (int d = 0; d <= 9; d++) {

                    int num1 = 1000 * a + 100 * b + 10 * c + d;
                    int num2 = 1000 * d + 100 * c + 10 * b + a;
                    if (9*num1 == num2) {
                        printf("%d\n", num1);
                    }


                }
            }
        }
    }
}
// 64 位输出请用 printf("%lld")

image-20240401222831633

三、对称平方数1(清华大学复试上机题)

题目

image-20240405214310992

解法

#include <iostream>
#include <cmath>  
using namespace std;
int R(int x) {
    int revx = 0;
    while (x != 0) {
        revx *= 10;
        revx += x % 10;
        x /= 10;
    }
    return revx;
}
int main() {
    for (int i = 0; i <= 256; i++) {
        if (pow(i,2) == R(pow(i,2))) {
            printf("%d\n", i);
        }
    }
}
// 64 位输出请用 printf("%lld")

image-20240405214408505

补充知识(cmath库)

#include <cmath> 
pow(a,b)       //a的b次方
sqrt(x)        //x的开平方,根号下的x
abs(n)         //整数n的绝对值
fabs(m)        //浮点数m的绝对值

标签:10,题目,int,算法,笔记,revx,枚举,include
From: https://www.cnblogs.com/yidianxingyuan/p/18116282

相关文章

  • 十大排序算法的C++实现
    2024年4月5日排序算法一、稳定性的定义排序算法的稳定性是指排序过程中,相同元素的相对位置是否会发生变化。稳定的排序算法在排序过程中不会改变元素彼此的位置的相对次序,而不稳定的排序算法经常会改变这个次序。稳定性是一个特别重要的评估标准,排序算法的稳定性是一......
  • Java实现排序算法(1)
    七大常见排序算法直接插入排序希尔排序选择排序堆排序冒泡排序快速排序归并排序下文后三种排序算法(后三种排序算法详解)直接插入排序算法描述:定义两个下标(i和j).i从第二个元素开始,j从i前面开始,进行循环,途中定义一个temp,每次循环将i下标的元素放到temp中,与......
  • git学习笔记
    Git学习笔记君_擎已于 2023-12-1322:47:20 修改阅读量181收藏点赞数分类专栏:学习笔记文章标签:git学习笔记于 2023-05-1101:13:34 首次发布版权学习笔记专栏收录该内容15篇文章0订阅订阅专栏 文章目录一......
  • m基于深度学习的32QAM调制解调系统频偏估计和补偿算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要        在无线通信系统中,接收端收到的信号由于各种原因可能会存在载波频率偏差(FrequencyOffset,FO)。在32-QAM系统中,频偏会导致星座图旋转和幅度失真,严重影响解调性能。因此,准确快速地估计并......
  • 【CANN训练营笔记】OrangePI AIPro 体验手写体识别模型训练与推理
    CANN简介当我们谈到香橙派AIPro的时候,总会把她和昇腾生态关联起来,因为在昇腾芯片的加持下,这款开发板有着出色的算力,被众多开发者追捧。而谈到昇腾芯片,我们不得不提上层的AI异构计算架构CANN。异构计算架构CANN(ComputeArchitectureforNeuralNetworks)是华为针对AI场......
  • EGF 学习笔记
    【EGF】对于一个数列\(<f_n>\),定义其指数型生成函数(EGF)\(\hat{F}(x)=\displaystyle\sum_{n\ge0}\dfrac{f_n}{n!}x^n\)。实际上\(EGF<f_n>=OGF<\dfrac{f_n}{n!}>\)定理:若\(<a_n>\)的EGF为\(\hat{A}(x)\),\(<b_n>\)的EGF为\(\hat{B}(x)......
  • Coursera上托福专项课程03:TOEFL Test-Taking Strategies 学习笔记(完结)
    TOEFLPreparationSpecializationSpecializationCertificateTOEFLTest-TakingStrategiesCourseCertificate本文是学习TOEFLTest-TakingStrategies这门课的学习笔记,如有侵权,请联系删除。文章目录TOEFLPreparationSpecializationTOEFLTest-TakingStra......
  • 疯狂Python讲义学习笔记——第2章变量和简单类型2.4字符串入门
    思维导图          字符串的意思是“一串字符”,比如"Hello,Python"是一个字符串,"Howdoyoudo?"也是一个字符串。Python要求字符串必须使用引号括起来,可使用单引号或双引号,只要两边的引号能配对即可。4.1字符串和转义字符        字符串的内容几乎可......
  • 有关哈希表算法
    例题一解法(哈希表):算法思路:•如果我们可以事先将「数组内的元素」和「下标」绑定在⼀起存⼊「哈希表」中,然后直接在哈希表中查找每⼀个元素的target-nums[i],就能快速的找到「⽬标和的下标」。•这⾥有⼀个⼩技巧,我们可以不⽤将元素全部放⼊到哈希表之后......
  • SpringBoot学习笔记-S2
    1.SpringBoot中的常见注解@RequestBody:使SpringMVC框架可自动读取请求体里面的JSON格式的数据,转换成map类型的集合对象@RestController:开发RESTfulAPI时使用,等价于@ResponseBody+@Controller。@RestController和@Controller的都可用来表示Spring某个类是否可以接收HTT......