Добавление цифр в четных и нечетных местах (C #) - PullRequest
5 голосов
/ 24 августа 2009

Мне нужно добавить цифры в четных и нечетных местах в целое число. Сказать, Пусть number = 1234567. Сумма четных цифр = 2+4+6 = 12 Сумма нечетных разрядов = 1+3+5+7 = 16

Подождите, не спешите с ответом!

Я ищу коды с минимальными строками, желательно однострочные. Аналогично тому, что 'chaowman' разместил в теме Сумма цифр в C # .

Есть ли у кого-нибудь классные коды. Спасибо.

Ответы [ 13 ]

0 голосов
/ 24 августа 2009
int number = 1234567;
int oddSum = 0;
int evenSum = 0;
while(number!=0)
{
  if (n%2 == 0) evenSum += number % 10;
  else oddSum += number % 10;
  number /= 10;
}
0 голосов
/ 24 августа 2009
 int evenSum = 1234567.ToString().ToCharArray().Where((c, i) => (i % 2 == 0)).Sum(c => c - '0');
 int oddSum = 1234567.ToString().ToCharArray().Where((c, i) => (i % 2 == 1)).Sum(c => c - '0');
0 голосов
/ 24 августа 2009

Я действительно не знаю C #, но вот одна строка, которая может показаться немного знакомой Патрику Макдональду:

int oddSum = 0, evenSum = 0; bool odd = true; while (n != 0) { if (odd) oddSum += n % 10; else evenSum += n % 10; n /= 10; odd = !odd; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...