zoukankan      html  css  js  c++  java
  • Uva 725 除法

    紫书P182

    直接枚举 0~9 的全排列会超时,枚举fghij就可以了,计算出 abcde ,这里有一个新的函数,也可以不用咯,把每一位数据提取出来,while循环可以做到,这里的新的函数是,sprintf(buf,"%5d%5d",abcde,fghij); 格式化提取,把abcde,fghij每一位提取到字符串buf中,不足5位的补0。然后看每一个位是否都有。都有就是一个0~9的全排列。

    /*#include <stdio.h>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
        int n;
        int a[10] = {0,1,2,3,4,5,6,7,8,9};
        while(scanf("%d",&n),n) {
    
            bool flag = false;
            do {
    
                int s = 0;
                for(int i=0;i<5;i++) {
                    s = s*10 + a[i];
                }
                int t = 0;
                for(int i=5;i<10;i++) {
                    t = t*10 + a[i];
                }
                if(s%t==0&&s/t==n) {
                    flag = 1;
                    printf("%d%d%d%d%d / %d%d%d%d%d = %d
    ",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],n);
                }
    
            }while(next_permutation(a,a+10));
    
            if(!flag)
                printf("There are no solutions for %d.
    ",n);
    
        }
    
        return 0;
    }
    */
    
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int main() {
    
        //freopen("in.txt","r",stdin);
        int n;
        int kase = 0;
        char buf[99];
        while(scanf("%d",&n),n) {
    
            if(kase++)
                printf("
    ");
            int cnt = 0;
            for(int fghij = 1234;;fghij++) {
                int abcde = fghij*n;
                sprintf(buf,"%05d%05d",abcde,fghij);
                if(strlen(buf)>10) break;
                sort(buf,buf+10);
                bool ok = true;
                for(int i=0;i<10;i++) {
                    if(buf[i]!='0'+i) ok = false;
                }
    
                if(ok) {
                    cnt++;
                    printf("%05d / %05d = %d
    ",abcde,fghij,n);
                }
    
    
            }
            if(!cnt)
                printf("There are no solutions for %d.
    ",n);
    
        }
    
    
        return 0;
    }
    View Code
  • 相关阅读:
    (转)介绍一些.net开源项目
    (转).Net有哪些大型项目、大型网站的案例?
    Linux下的awk使用
    linux下的sed使用
    linux下的find、grep、cut使用
    CentOS7下的Zabbix4.4安装配置
    NetBackup linux客户端安装
    bat小脚本
    批量复制指定目录下的文件,并统计执行时间
    iptables
  • 原文地址:https://www.cnblogs.com/TreeDream/p/6034888.html
Copyright © 2011-2022 走看看