uva - 993 - Product of digits(贪心法)

2014-11-24 10:10:44 · 作者: · 浏览: 2

题意:给你一个大于0的整数n,请你找到最小的整数q,使得q中所有数字相乘等于n。

方法:贪心法。

#include 
  
     
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
          
            #include 
           
             using namespace std; int main() { #ifdef Local freopen("a.in", "r", stdin); #endif int t = 0; cin >> t; while (t--) { int n = 0, ans = 0,i = 0, j = 0, flag = 1; cin >> n; if (1 == n) cout << "1" << endl; else { while(n != 1) { flag = 1; for (i = 9; i >= 2; i--) { if (0 == n % i) { ans += i * pow(10, j++); n /= i; flag = 0; } } if (flag) { cout << "-1" << endl; break; } } if (!flag) cout << ans << endl; } } return 0; }