(贪心5.2.6)URAL 1014 Product of Digits(利用数据有序化进行贪心选择)

来源:互联网 发布:创业网络平台建设 编辑:程序博客网 时间:2024/04/30 20:27
/* * URAL_1014.cpp * *  Created on: 2013年10月11日 *      Author: Administrator */#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;const int maxn = 11;int a[maxn];int main() {int n;scanf("%d", &n);if (n == 0) {printf("10\n");return 0;}if (n == 1) {printf("1\n");return 0;}int num = 0;while (n > 1) {int i;bool flag = false;for (i = 9; i >= 2; --i) {//之所以从9开始扫是为了让分解出来的因子的高位数字小、少if (n % i == 0) {//找到了其中一个因子a[num++] = i;n /= i;flag = true;//依据题意,每次扫的时候都应该能从在2~9中找到一个因子邹泽则是不可分解的break;//没找到一个因子以后都要重新扫..}}if(!flag){//这句话一定要加上,及应该在这里就进行判断,看这个数能否进行分解。否则就会出现死循环...如23 就不能进行分解printf("-1\n");return 0;}}sort(a, a + num);int i;for (i = 0; i < num; ++i) {printf("%d", a[i]);}return 0;}

原创粉丝点击