码迷,mamicode.com
首页 > 其他好文 > 详细

UVA - 993 - Product of digits (简单贪心)

时间:2015-04-02 09:11:13      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:acm   uva   贪心   

993 Product of digits

For a given non-negative integer number N, ?nd the minimal natural Q such that the product of all
digits of Q is equal N.

Input
The ?rst line of input contains one positive integer number, which is the number of data sets. Each
subsequent line contains one data set which consists of one non-negative integer number N (0 ≤ N ≤109).


Output
For each data set, write one line containing the corresponding natural number Q or ‘-1’ if Q does not
exist.

Sample Input
3
1
10
123456789

Sample Output
1
25
-1





思路:找N的9 ~ 2的因数(按降序找)的个数,输出按升序


AC代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;

int T, N;
int a[10];

int main() {
	scanf("%d", &T);
	while(T--) {
		scanf("%d", &N);
		if(N == 1) {
			printf("1\n");
			continue;
		}
		memset(a, 0, sizeof(a));
		for(int i = 9; i >= 2; i--) {
			if(N == 1) break;
			while(N % i == 0) {
				a[i] ++;
				N /= i;
			}
		}
		if(N != 1) {
			printf("-1\n");
			continue;
		}
		for(int i = 2; i < 10; i++) {
			while(a[i] != 0) {
				printf("%d", i);
				a[i] --;
			}
		}
		printf("\n");
	}
	return 0;
}














UVA - 993 - Product of digits (简单贪心)

标签:acm   uva   贪心   

原文地址:http://blog.csdn.net/u014355480/article/details/44817357

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!