Xn0*_*v3r 36 c# algorithm sum-of-digits
什么是计算数字总和的最快和最容易阅读的实现?
即给出数字:17463 = 1 + 7 + 4 + 6 + 3 = 21
Gre*_*ill 95
您可以在不使用字符串的情况下进行算术运算:
sum = 0;
while (n != 0) {
sum += n % 10;
n /= 10;
}
Run Code Online (Sandbox Code Playgroud)
Cha*_*pol 40
我用
int result = 17463.ToString().Sum(c => c - '0');
Run Code Online (Sandbox Code Playgroud)
它只使用1行代码.
Ant*_*nts 16
对于整数,Greg Hewgill有大部分答案,但忘记考虑n <0.-1234的数字之和应该仍然是10,而不是-10.
n = Math.Abs(n);
sum = 0;
while (n != 0) {
sum += n % 10;
n /= 10;
}
Run Code Online (Sandbox Code Playgroud)
它是一个浮点数,应该采用不同的方法,并且当它达到小数点时,chaowman的解决方案将完全失败.
Muh*_*han 11
int num = 12346;
int sum = 0;
for (int n = num; n > 0; sum += n % 10, n /= 10) ;
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 10
public static int SumDigits(int value)
{
int sum = 0;
while (value != 0)
{
int rem;
value = Math.DivRem(value, 10, out rem);
sum += rem;
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
80425 次 |
最近记录: |