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

ありがとう

4

1 に答える 1

7

負の数を扱う必要がないと仮定すると、数学的にそれを行う方がはるかに理にかなっているようです

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

参考文献:

% 演算子

% 演算子は、最初のオペランドを 2 番目のオペランドで除算した余りを計算します

/ 演算子:

2 つの整数を除算すると、結果は常に整数になります。たとえば、7 / 3 の結果は 2 です。

于 2013-06-13T06:13:13.180 に答える