zoukankan      html  css  js  c++  java
  • UVa 993

      题目大意:给一个非负整数n,寻找最小的自然数q使得q的各位数字的乘积等于n。

      对n进行2~9的因数分解,从9到2循环(分解成9比分解成3,3更小),同时要考虑0和1的特殊情况,除非n是0或1,否则q的各个数字不会有0和1出现。

     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 int main()
     5 {
     6 #ifdef LOCAL
     7     freopen("in", "r", stdin);
     8 #endif
     9     int cnt[10];
    10     int T;
    11     scanf("%d", &T);
    12     while (T--)
    13     {
    14         int n;
    15         scanf("%d", &n);
    16         if (n < 10)
    17         {
    18             printf("%d
    ", n);
    19             continue;
    20         }
    21         memset(cnt, 0, sizeof(cnt));
    22         bool ok;
    23         while (n > 9)
    24         {
    25             ok = false;
    26             for (int i = 9; i >= 2; i--)
    27                 if (n % i == 0)
    28                 {
    29                     ok = true;
    30                     cnt[i]++;
    31                     n /= i;
    32                 }
    33             if (!ok)   break;
    34         }
    35         if (!ok)
    36         {
    37             printf("-1
    ");
    38             continue;
    39         }
    40         cnt[n]++;
    41         for (int i = 2; i <= 9; i++)
    42             for (int j = 0; j < cnt[i]; j++)
    43                 printf("%d", i);
    44         printf("
    ");
    45     }
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    eureka流程图
    Feign和Ribbon的重试机制
    idea编译kafka 2.6 源码
    Feign的调用流程
    FeignClientFactoryBean创建动态代理
    Feign源码的入口
    Ribbon的检查服务
    Ribbon是怎么和Eureka整合的?
    Eureka过期
    backup: sqlHelper --cSharp
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3259741.html
Copyright © 2011-2022 走看看