gpt4 book ai didi

java - 计算将数字表示为连续数字之和的方法

转载 作者:行者123 更新时间:2023-11-30 05:39:02 24 4
gpt4 key购买 nike

计算将数字表示为连续数字之和的方法。比如说 21 ,有 3 种方法得到它 [1,2,3,4,5,6] , [6,7,8] 和 [10,11] 。

当我在互联网上寻找一些解决方案时,我发现了我无法理解的代码片段。或者说它背后的数学理论。虽然它给出了正确的答案。

long countConsecutive(long num){
long sumOfFirstIntegers = 3;
long count = 0;

for(long i = 2 ; sumOfFirstIntegers<=num; ++i){
if((i%2==0)?(num%i==i/2): (num%i==0)){
++count;
}
sumOfFirstIntegers+=i+1;
}
return count;
}

最佳答案

独立于数学,这可能是让你头疼的一行:

if((i%2==0)?(num%i==i/2): (num%i==0)) { 

可以将其重写为:

bool condition;
if (i%2 == 0) {
condition = num%i == i/2;
} else {
condition = num%&i == 0;
}
if (condition) { ++count; }

所以 ternary operator用于选择 boolean 条件,%为modulo operator .

对于所有这一切背后的数学,我委托(delegate)给 geeksforce .

关于java - 计算将数字表示为连续数字之和的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56053678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com