码迷,mamicode.com
首页 > 其他好文 > 详细

暴力穷举

时间:2014-05-09 21:04:30      阅读:638      评论:0      收藏:0      [点我收藏+]

标签:暴力   穷举   除法   

                                                               暴力除法
题目描述
输入正整数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

暴力穷举

标签:暴力   穷举   除法   

原文地址:http://blog.csdn.net/u013240812/article/details/25409465

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!