[ACM_NYOJ_270]Product of Digits

蓝飞 蓝飞 | 时间:2012-04-20, Fri | 9,877 views
编程算法 

Product of Digits

Time Limit: 1.0 second
Memory Limit: 16 MB

Description

Your task is to find the minimal positive integer number Q so that the product of digits of Q is exactly equal to N.

Input

The input contains the single integer number N (0 ≤ N ≤ 109).

Output

Your program should print to the output the only number Q. If such a number does not exist print −1.

Sample Input

10
5

Sample Output

25
5

Source

Timus1014 NYOJ270

陷阱啊陷阱。。。positive integer number即正整数,也就是说输入0应输出10,而非0。代码如下,寥寥草草写的没怎么优化过:

#include<iostream>
using namespace std;
int main()
{
	int num;
	int a[100];
	while(cin >> num){
		int k = 0;
		if(num == 0){
			cout << 10 << endl;
			continue;
		}else if(num < 10){
			cout << num << endl;
			continue;
		}
		for(int i = 9; i >= 2; --i){
			while(num){
				if(num % i == 0){
					a[k++] = i;
					num /= i;
				}else{
					break;
				}
			}
		}
		if(num > 1){
			cout << -1 << endl;
		}else{
			for(int j = k - 1; j >= 0; --j){
				cout << a[j];
			}
			cout << endl;
		}
	}
	return 0;
}
如需转载请注明出处:蓝飞技术部落格

当前暂无评论 »