URAL 1014 Product of Digits
生活随笔
收集整理的這篇文章主要介紹了
URAL 1014 Product of Digits
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
URAL_1014
??? 基本的貪心思路是留下盡量少的項,而且這些項的字典序盡可能小。因此,要優先生成8,然后優先生成9,6,4,最后生成質數。至于為什么先生成9,再生成6,再生成4,這個可以將2、3的個數分奇偶討論一下就很清楚了。
??? 此外還有一些細節需要注意,比如N=1的時候輸出1,N=0的時候輸出10。
#include<stdio.h> #include<string.h> int N, h[15]; void solve() {int i;memset(h, 0, sizeof(h));while(N % 8 == 0)++ h[8], N /= 8;while(N % 9 == 0)++ h[9], N /= 9;while(N % 6 == 0)++ h[6], N /= 6;while(N % 4 == 0)++ h[4], N /= 4;for(i = 2; i < 8; i ++)while(N % i == 0)++ h[i], N /= i;if(N != 1)printf("-1");else{for(i = 2; i < 10; i ++)while(h[i])printf("%d", i), -- h[i];}printf("\n"); } int main() {while(scanf("%d", &N) == 1){if(N == 0)printf("10\n");else if(N == 1)printf("%d\n", N);elsesolve();}return 0; }轉載于:https://www.cnblogs.com/staginner/archive/2012/05/01/2477541.html
總結
以上是生活随笔為你收集整理的URAL 1014 Product of Digits的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: System.Web.HttpReque
- 下一篇: ECMAScript 基础--原始类型