(Relax 贪心1.4)POJ 2325 Persistent Numbers(使用贪心策略解决这么一个问题: 给定一个数n,求一个最小的数m,使得m的各位的乘积==n)
来源:互联网 发布:云上数据属于 编辑:程序博客网 时间:2024/06/05 23:50
import java.math.BigInteger;import java.util.Scanner;public class POJ_2325 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);BigInteger n;BigInteger zero = new BigInteger("0");BigInteger nOne = new BigInteger("-1");BigInteger ten = new BigInteger("10");int a[] = new int[4000];while(scanner.hasNext()){n = scanner.nextBigInteger();if(n.compareTo(nOne) == 0){break;}if(n.compareTo(ten) < 0){//如果这个数<10System.out.println("1" + n);continue;}boolean flag = false;int count = 0;while(true){//如果这个数>=10int i;flag = false;for(i = 9 ; i >= 2 ; --i){//贪心策略:要使获得的数最小,则从最低位开始枚举最大数if(n.mod(BigInteger.valueOf(i)).compareTo(zero) == 0){flag = true;n = n.divide(BigInteger.valueOf(i));a[++count] = i;break;}}if(n.compareTo(ten) < 0){//如果这个数已经<10,则处理已经结束flag = true;a[++count] = n.intValue();break;}if(flag == false){//如果这个数没有2~9之间的因数&&>10,则分解失败break;}}if(flag == false){System.out.println("There is no such number.");}else{int i;for(i = count ; i >= 1;--i){//逆序输出System.out.print(a[i]);}System.out.println();}}}}
- (Relax 贪心1.4)POJ 2325 Persistent Numbers(使用贪心策略解决这么一个问题: 给定一个数n,求一个最小的数m,使得m的各位的乘积==n)
- 输入一个正整数n,输出一个最小正整数m,使得m的各位乘积等于n
- 已知一个整数N,求另外一个整数M,使得M本身 + M各个位上的数 = N
- 任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0。
- 给定一个double类型的浮点数m和int类型的整数n,求m的n次方
- 给定数m,求由n位数的组成m的数列(m>=n>0)
- 给定一个数组,找到第k到m(0<k<=m<=n)大的数
- 给定一个十进制数M,以及需要转换的进制数N。 将十进制数M转化为N进制数
- POJ-1150(求排列数P(n,m)中最后一个非0的数字)
- POJ-1150(求排列数P(n,m)中最后一个非0的数字)
- zoj3596 求一个数N的最小的一个倍数中包含M个不同的数字
- 已知数0到n-1,给定数m,每隔m取出一个数,问,全部取出时的序列
- (Relax 数论1.27)POJ 1150 The Last Non-zero Digit(求p(n,m)的最后一个非零数字)
- 输入一个正整数n,返回一个最小正整数m(m至少是2位数),使得m的各位乘积等于n,例如输入36,输出49,输入100,输出455,对于某个n不存在这样的m,请返回-1。
- 给定一个N位数,得到一个N-k位的数中最小的数
- 给定一个N位数,得到一个N-k位的数中最小的数
- [南阳OJ-No.56]阶乘因式分解(一)|给定两个数m,n,其中m是一个素数。 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。
- rand-取小于一个定值M以内,N个不重复的数(M>=N)
- 顺序表与链表的比较
- 读《C专家编程》总结(一)
- cmd创建文件方法
- find用法例子
- Java问题解析:到底创建了几个String对象?
- (Relax 贪心1.4)POJ 2325 Persistent Numbers(使用贪心策略解决这么一个问题: 给定一个数n,求一个最小的数m,使得m的各位的乘积==n)
- java内存模型(java 并发编程基础)
- zoj An Awful Problem 3326
- centos 下安装jdk
- 软件测试中sql代码的优化
- virtualenv django
- eclipse ubuntu上快捷图标
- 异常积累:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in
- MATLAB在Ubuntu下配置到applications menu