2010-10-27 5 views

ответ

11

Что-то вдоль линий этого следует сделать это:

int val = 3234; 

int sum = 0; 
while (val != 0) { 
    sum += (val % 10); 
    val = val/10; 
} 

// Now use sum. 

Для продолжал добавлять, пока вы не получите одну цифру:

int val = 3234; 

int sum = val; 
while (sum > 9) { 
    val = sum; 
    sum = 0; 
    while (val != 0) { 
     sum += (val % 10); 
     val = val/10; 
    } 
} 

// Now use sum. 

Обратите внимание, что оба они являются разрушительными для первоначального val значения , Если вы хотите сохранить его, вы должны сделать копию или сделать это в функции, чтобы сохранить оригинал.

+0

отсутствует точка с запятой сумма + = (значение% 10); – Saawan

+0

Спасибо, @Online, исправлено. – paxdiablo

+0

спасибо! теперь, если я хочу повторить этот процесс до тех пор, пока не получу одну цифру от 1 до 9, как это сделать. – nishantcm

2

Надеюсь, это не ваша домашняя работа!

int sum = 0; 
while (value!=0) { 
    sum += value % 10; 
    value = value/10; 
} 
+2

тот же ответ, что и paxdiablo .... дайте ему указание –

+0

На самом деле у меня есть идея о том, как это сделать в php, но я не могу сделать это в объективе c. – nishantcm

+0

не является объективным, но только C! algo такой же, как php ... –

 Смежные вопросы

  • Нет связанных вопросов^_^