(枚举)算法竞赛入门经典(7.1.1)除法

#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
int n{},
    arr[10]{};
void cck(int p,bool *flag)
{
    int sum=p*n,
        ans=p*n,
        hd=9;
    if(sum>98765||sum<1234)
        return;
    if(!(sum/10000))hd--;
    bool flag2[10];
    for(int i=0;i<10;i++)flag2[i]=flag[i];
    for(int i=hd;i>=5;i--){
        arr[i]=sum%10;
        sum/=10;
        if(flag2[arr[i]])return;
        flag2[arr[i]]=1;
    }
    printf("%d/%d=%d\n",ans,p,n);
}
void recursion(int p,int row,bool *flag)
{
    if(row==5){
        cck(p,flag);
        return;
    }
    for(int i=0;i<10;i++){
        if(!flag[i]){
            arr[4-row]=i;
            flag[i]=1;
            recursion(p*10+i,row+1,flag);
            flag[i]=0;
        }
    }
}
int main()
{
    bool flag[10]{};
    scanf("%d",&n);
    recursion(0,0,flag);
    return 0;
}



 

posted @   keshuqi  阅读(268)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示