Algorithm学习笔记 --- 简单枚举除法

来源:互联网 发布:如何在淘宝上买到真货 编辑:程序博客网 时间:2024/05/04 13:05

除法

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

样例输入:

62

样例输出:

79546/01238=62

94736/01528=62

代码如下:




#include <stdio.h>
#include <stdlib.h>
int main()
{
    int panduan(int,int);
    int n,i;
    while(scanf("%d",&n)=1)
    {
        for(i=1234;i*n<=98765;i++)
        if(i<=9876&&i*n>=12345&&panduan(i,i*n))
        printf("%d/0%d=\n",i*n,i);
        if(i>=10234&&i*n>=56789&&panduan(i,i*n))
        printf("%d/%d=\n",i*n,i);
    }
    return 0;
}
int panduan(int x,int y)
{
    int a[10]={0};
    for(int i=0;i<5;i++)
    {
        a[x%10]++;
        x=x/10;
    }
    for(int i=0;i<5;i++)
    {
        a[y%10]++;
        y=y/10;
    }
    for(int i=0;i<10;i++)
    {
        if(a[i]!=1) 
        return 0;
    }
    return 1;
}

0 0
原创粉丝点击