我想知道为什么以下基于模运算int
的代码解决方案在从类型转移到类型时不起作用long
。
例如给定111111111111L
我想退货12L
。
如何实现以下问题中描述的相同预期行为(仅适用于 int 类型值)? 给定正数的所有数字的总和
我也专注于性能问题,所以我正在寻找一个有效的解决方案。
public static long sumTheDigitsVersion1(long inputValue){
long sum = inputValue % 9L;
if(sum == 0){
if(inputValue > 0)
return 9L;
}
return sum;
}
public static long sumTheDigitsVersion2(long inputValue){
return inputValue - 9L * ((inputValue - 1L) / 9L);
}
谢谢