Is there any better way to find the digit multiplication and summation?

匿名 (未验证) 提交于 2019-12-03 02:38:01

问题:

int N = 2345;         var digitArray = N.ToString().ToCharArray();         int multiplicationSum = 1;         foreach (char digit in digitArray)         {             multiplicationSum = int.Parse(digit.ToString()) * multiplicationSum;         }         var sum = 0;         var sumArray = multiplicationSum.ToString().ToCharArray();         foreach (char digit in sumArray)         {             sum = int.Parse(digit.ToString()) + sum;         }

Thanks

回答1:

Assuming you don't need to deal with negative numbers, it seems doing it mathematically would make a lot more sense

int N = 2345; int multiplicationSum = 1; while(N!=0) {   multiplicationSum = multiplicationSum * (N%10);   N = N/10; } var sum = 0; while(multiplicationSum!=0) {   sum = sum + (multiplicationSum%10);   multiplicationSum = multiplicationSum/10; }

References:

% operator

The % operator computes the remainder after dividing its first operand by its second

/ operator:

When you divide two integers, the result is always an integer. For example, the result of 7 / 3 is 2



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!