java - 关于基数或算法的问题

标签 java algorithm

我是一个非常基础的 java 用户。我正在为这门课做这件事,并且我已经编写了整个程序,但我终其一生都无法弄清楚获得所需输出所需的算法,所以我想知道是否有任何 Java 或 Math大师们可以帮助像我这样的普通人摆脱困境。明天交作业,这是最后一个问题。感谢您的帮助。

这是我的主要方法中的代码,其中注释了所需的输出,后面是序列 2 方法。

 for(int i = 0; i < 10; i++) {
     System.out.print(sequence2(i) + "   "); // 1, 2, 4, 5, 7, 8, 10, 11, 13, 14  
  }



      public static int sequence2(int n) {
   if(n == 0)
       return 1;
   if(n == 1)
       return 2;
   if(n == 2)
       return 4;
   if(n == 3)
       return 5;

    return sequence(n-3) + sequence(n-3);}

我不确定这是我的基础问题,还是我在底部的计算问题。非常感谢任何帮助!

最佳答案

更新

因为它必须是一个递归方法,所以这样做:

public static int sequence2(int n) {
    return (n <= 1 ? n + 1 : 3 + sequence2(n - 2));
}

原始答案

这样做就可以了:

public static int sequence2(int n) {
    return n / 2 * 3 + n % 2 + 1;
}

输出

1   2   4   5   7   8   10   11   13   14   

要查看它是如何加起来的,这里是中间值:

n           0   1   2   3   4   5    6    7    8    9
-----------------------------------------------------
n / 2       0   0   1   1   2   2    3    3    4    4

n / 2 * 3   0   0   3   3   6   6    9    9   12   12
n % 2       0   1   0   1   0   1    0    1    0    1
1           1   1   1   1   1   1    1    1    1    1
=====================================================
result      1   2   4   5   7   8   10   11   13   14   

关于java - 关于基数或算法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907157/

相关文章:

algorithm - 匹配误差最低的两个图

Java:找到没有任何数字和至少一个大写字符的最长子串

C++元编程递归步数限制

algorithm - 不考虑字符位置的字符串哈希函数

java - ANDROID Firebase数据库 : Unable to save object

java - throw 类 <?扩展可抛>

java - 在二维图中找到最接近给定点的坐标的算法

java - Eclipse 错误 com.google.android.gms.ads 无法解析

Java 如何写入并行端口(Windows 7)-代码不起作用

algorithm - 是否存在没有隐藏状态的 "good"PRNG 生成值?