首页 > 其他 > 详细

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

时间:2015-04-02 09:10:05      阅读:222      评论:0      收藏:0      [点我收藏+]

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 (简单贪心)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!