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;
        }

谢谢

最佳答案

假设你不需要处理负数,那么从数学角度来处理它似乎更有意义

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;
}

参考文献:
% operator
%运算符在将第一个操作数除以第二个操作数后计算余数
/ operator
当你除以两个整数时,结果总是一个整数。例如,7/3的结果是2

关于c# - 有什么更好的方法来找到数字的乘法和求和?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17080289/

10-10 14:52