除法(非常非常非常简单的暴搜TAT)
作者:互联网
输入整数n,按从小到大的顺序输出所有形如abdce/fghij = n的表达式
其中aj恰好是09的一个 排列(可以有前导0)
石路:
暴搜也别太暴力,可以大概想想边界什么的,可以略微优化一下,或者。。。。
反正认真分析一下可能有惊喜!
#include <iostream>
#include<algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
#define MAXSIZE 150
/** 除法 **/
int judge(int a,int b){//判重函数
int num[10];
memset(num,0,sizeof(num));
while(a){
num[a%10]+=1;
a/=10;
}
while(b){
num[b%10]+=1;
b/=10;
}
for(int i=1;i<10;i++){
if(num[i]==0 || num[i]>1) return 0;
}
return 1;
}
int main(){
int n;
scanf("%d",&n);
for(int i = 1234;i<98765;i++){
if(n*i > 98765)
continue;
if(judge(i,n*i))
printf("%d / %05d = %d\n",n*i,i,n);
}
return 0;
}
标签:TAT,10,非常简单,return,int,include,while,num,除法 来源: https://blog.csdn.net/weixin_43201459/article/details/88703784