暴力穷举

暴力除法

题目描述

输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79

输入

输入包括多行,每行一个正整数n,2<=n<=79

输出

针对每个输入的n,从小到大输出该表达式,若没有表达式可以生成,则不输出。

样例输入

62

样例输出

79546/01283=62

94736/01528=62

#include<iostream>

#include<string.h>

using

namespace

std;

int

de(
int

m,
int

n)

{

    int

x[10];

    memset(x,0,sizeof(x));

    int

k=0;

    while(m!=0)

    {

        x[k++]=m%10;

        m=m/10;

    }

    while(n!=0)

    {

        x[k++]=n%10;

        n=n/10;

    }

    for(int

i=0;i<10;i++)

    {

        for(int

j=i+1;j<10;j++)

        {

            if(x[i]==x[j])

                return

0;

        }

    }

    return

1;

}

int

main()

{

    int

n;

    while(cin>>n)

    {

        for(int

i=01234;i<=98765;i++)

        {

            int

j=i*n;

            if(j>1000&&j<100000)

            {

                if(de(i,j)==1)//不重复

                {

                    if(i<10000)

                    cout<<j<<‘/‘<<0<<i<<‘=‘<<n<<endl;

                    else

cout<<j<<
‘/‘<<i<<‘=‘<<n<<endl;

                }

            }

        }

    }

   return

0;

}

此题着重考虑时间超限问题,不可以从头至尾依次循环

直接找到满足乘积关系的值可以大大缩小运算量,同时需要一个函数来判断是否有重复元素

暴力穷举,布布扣,bubuko.com

时间: 2024-08-03 13:58:53

暴力穷举的相关文章

一次暴力穷举解八皇后问题的血腥尝试(心疼我的CPU)

还没有接触到系统的算法课程,在JAVA教材看到了八皇后的题目.之前对于算法,我一直存在这一种偏见-----计算机的运算速度那么快有必要花费脑筋设计各种算法吗?(用暴力穷举不就好了?).然而当我解八皇后问题时,我的core-i5跑了半个小时接近跑完所有92个解,此处心疼本人cpu三秒.(为什么会这样,原因很简单:暴力穷举的话可能的情况数目是64*63*62*61*60*59*58*57=178462987637760种,即使电脑运算速度再快,也需要相当长的时间) 至此我初步体会到了算法的重要性--

【算法学习笔记】49.暴力穷举 BFS 剪枝 SJTU OJ 1357 相邻方案

相邻方案 Description 有一个5*5的矩阵,每个元素只可能是H或者J. 我们现在需要选择7个相邻的格子使得H的数量小于J的数量.其中,拥有公共边的两个格子可以被称为相邻的格子. 对于任意一种输入的5*5矩阵,请输出满足上述条件的方案总数. Input Format 共5行,表示矩阵情况.(每一个元素只可能是H或J) Output Format 一个整数N,代表不相同方案的总数. Input Sample HHHHH JHJHJ HHHHH HJHHJ HHHHH Output Samp

暴力穷举zip压缩文件的密码

生成密码的方式类似与时钟,末尾遍历完了第k位所有的字符,就让第k位的前一位到下一位字符,第k位回到第0个字符. 对python还不太熟悉,效率比较低,但是能破解简单的密码. import zipfile #密码可能有的字符 testSetstr = "w.abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$%&'()*+,-/:;<=>[email protected][\]^_`{|}~"

基于NVIDIA GPU的MD5加速穷举(CUDA)

声明:本文仅限于技术分享,请勿将代码用于非法用途,利用本文代码所产生的各种法律问题,与本文作者无关. 1. 摘要: MD5为非常普遍使用的消息摘要算法,很多应用系统采用该算法加密密码,在计算文件摘要值以验证文件是否被篡改方面也普遍使用, MD5服务安全方面很多年,随着计算机技术的发展,该算法已经很不安全,穷举遍历的代价也变得没那么高,笔者建议至少采用(SHA1+盐值) 方法加密新建设的应用系统,由于目前很多网站大量的用户名密码泄露,个人的信息安全也越来越重要,目前很多系统采用的加密算法有: 1>

如何有效防范暴力破解和敏感信息穷举漏洞

我们浏览网站经常会用到一些验证码,主要目的是防止来自暴力破解或密码穷举等方面的攻击, 但有时候验证码的出现也会影响用户的浏览体验,解决方案之一就是设置一个抛错阀值,当有恶意用户 在尝试暴力破解或穷举的时候输错次数超过阀值,便触发验证码框的弹出,这样既可以阻止攻击者的 恶意行为又可以提高合法用户的浏览体验. 那么trouble来了,我通过什么信息去标识一个用户呢?解决方案有很多种. 对于已注册过的用户 已经注册过的用户肯定有自己的用户ID,而且这个ID是不会变的,那么就可以利用这个ID做全局变量,

10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)

因为我们这里要穷举的密码包括0-9,a-z,A-Z共62个字符,所以我们采用62进制来遍历. 首先,我们实现一个10进制转62进制的方法. private static char[] charSet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); //private static string[] charSet = { "0", "1&qu

穷举法

穷举法是一种用来暴力破解某些数字组合时候用到的一种方法. 实际应用呢,例如:列举一个三位数,是11的倍数,且个位.十位.百位不相等. 代码: #include<iostream> using namespace std; int main() { int i; cout<<"11的倍数,且个位十位百位不相等:"<<endl; for (i=100; i<1000; i++) { //个位 int g = i%10; //十位 int s = i

穷举递归和回溯算法终结篇

穷举递归和回溯算法 在一般的递归函数中,如二分查找.反转文件等,在每个决策点只需要调用一个递归(比如在二分查找,在每个节点我们只需要选择递归左子树或者右子树),在这样的递归调用中,递归调用形成了一个线性结构,而算法的性能取决于调用函数的栈深度.比如对于反转文件,调用栈的深度等于文件的大小:再比如二分查找,递归深度为O(nlogn),这两类递归调用都非常高效. 现在考虑子集问题或者全排列问题,在每一个决策点我们不在只是选择一个分支进行递归调用,而是要尝试所有的分支进行递归调用.在每一个决策点有多种

HDU 1407 测试你是否和LTC水平一样高【穷举法】

/* 解题思路:暴力求解 难点详解:注意每个数都没有超过num 关键点:穷举法 解题人:lingnichong 解题时间:2014-08-28 10:56:15 解题体会:第一次使用goto语句,感觉goto语句还是有点实用的价值的 */ 测试你是否和LTC水平一样高 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12878    A