java - 计算连续的奇数变化

标签 java algorithm

我目前正在尝试找出一个目标 数可以表示为两个或多个连续奇数之和的次数。我有代码可以在这里找到最长的连续赔率序列:

public class consecutiveOdd {

static int target = 1000000;

public static void main(String[] args){

    int longestVariation = -1;

    int totalVariations = 0;

    for (int k = 1;; k++) {
        int i = target / k - k + 1;
        if (i <= 0) {
            break;
        }
        // Check if calculated i, can be the start of 'odd' sequence.
        if (target % k == 0 && i % 2 == 1) {
            longestVariation = k;
            totalVariations += 1;
        }
    }

    System.out.println(longestVariation); 
    System.out.println(totalVariations);

}

}

虽然我不确定它是否确定了正确的数量变化。我忽略了什么吗?

最好的, 奥特曼

最佳答案

不是真正的答案,但它让我想起了 Piaget 的守恒试验:

23^2 - 22^2
☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯
☯

哪张图有更多弹珠?

7^2 -  (6^2 + 6^2-5^2 + 5^2-4^2 + 4^2-3^2 + 3^2)  - 2^2
☯☯☯☯☯☯☯
☯☯☯☯☯☯☯
☯☯☯☯☯☯☯
☯☯☯☯☯☯☯
☯☯☯☯☯☯☯
☯☯☯☯☯
☯☯☯☯☯


9^2 -  (8^2 + 8^2-7^2 + 7^2)  - 6^2
☯☯☯☯☯☯☯☯☯
☯☯☯☯☯☯☯☯☯
☯☯☯☯☯☯☯☯☯
☯☯☯
☯☯☯
☯☯☯
☯☯☯
☯☯☯
☯☯☯

顺便说一句,任何完美正方形的最长连续奇数分区总是以 1 开头,在我们的绘图方法中,可以将其视为 (x² - 0²):

 4 = 1 + 3
 9 = 1 + 3 + 5
16 = 1 + 3 + 5 + 7
...etc.

关于java - 计算连续的奇数变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33129392/

相关文章:

algorithm - 如何在 Matlab 中加速我的代码 [包括示例]?

algorithm - 确定凹点

algorithm - 能被数字 M 整除的最短数字

python - 实现动态多时间线队列

algorithm - Matlab For循环只针对矩阵的 "shell"

java - Java 8 Stream 中有多个正则表达式从 Line 读取文本

java - 交易对象在异常情况下有什么值(value)。?

java - Android - 在 Android 中用按钮控制 LED

java - 在字符串中存储和打印连续字符?

java - 创建或更新时的时间戳 JSON 字段