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


    /*
     * 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
    ");
    		return 0;
    	}
    
    	if (n == 1) {
    		printf("1
    ");
    		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
    ");
    			return 0;
    		}
    	}
    
    	sort(a, a + num);
    
    	int i;
    	for (i = 0; i < num; ++i) {
    		printf("%d", a[i]);
    	}
    
    	return 0;
    }
    


  • 相关阅读:
    Kubernetes之Replica Set
    Kubernetes之Replication Controller
    Kubernetes之Deployment
    golang channel select
    golang slice
    epoll的由来
    ceph crush 之 crush_do_rule
    libevent
    P2P资料
    混沌理论学习笔记
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3364597.html
Copyright © 2020-2023  润新知