小编Rad*_*hna的帖子

一步的最小步骤

问题陈述 :

在正整数上,您可以执行以下3个步骤中的任何一个.

  1. 从中减去1.(n = n - 1)
  2. 如果它可被2整除,则除以2.(如果n%2 == 0,则n = n/2)
  3. 如果它可被3整除,则除以3.(如果n%3 == 0,则n = n/3).

现在问题是,给定正整数n,找到将n取为1的最小步数

例如:

  1. 对于n = 1,输出:0
  2. 对于n = 4,输出:2(4/2 = 2/2 = 1)
  3. 对于n = 7,输出:3(7 -1 = 6/3 = 2/2 = 1)

我知道使用动态编程并具有整数数组的解决方案.这是代码.

    public int bottomup(int n) {
            //here i am defining an integer array
            //Exception is thrown here, if the n values is high.
            public int[] bu = new int[n+1];
            bu[0] = 0;
            bu[1] = 0;
            for(int i=2;i<=n;i++) {
                    int r …
Run Code Online (Sandbox Code Playgroud)

java algorithm math dynamic-programming

13
推荐指数
1
解决办法
2492
查看次数

标签 统计

algorithm ×1

dynamic-programming ×1

java ×1

math ×1