最简单的暴力求解算法 简单枚举

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

杨丽输入:

62

输出:

79546/01283=62

94736/01528=62

 

//这是一道非常没含量的简单的枚举的题,所以我没把他算在寒假前刷题里,之所以把他写出来是因为这是我第一次真正的开始系统的看关于暴力算法的东西,暑假的时候打了酱油,现在就是在赎罪,老是听十元大师说暴力办法解决这道题,感觉暴力似乎是个很牛逼的东西。今天就写个最傻逼的代码了。

下面是代码:

#include<stdio.h>
#include<stdlib.h>
#include<iostream>

using namespace std;

bool test(int i,int j)
{
     int t[10]={0};
     int a=0;
     while(i)
     {
          t[a++]=i%10;
          i=i/10;
     }
     while(j)
     {
          t[a++]=j%10;
          j=j/10;
     }
     for(int m=0;m<10;m++)
       for(int n=m+1;n<10;n++)
       if(t[n]==t[m])
         return false;
      return true;
}

int main()
{
     int n,k;
     while(cin>>n&&n>=2&&n<=79)
     {
          k=1234;
          while(k<98765)
          {
               int j=k*n;
               if(j<100000)
               {
                    if(test(j,k))
                    {
                         cout<<j<<"/";
                         if(k<10000)
                         cout<<"0";
                         cout<<k<<"="<<n<<endl;
                    }
               }
               ++k;
          }
     }
     return 0;
}

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值