Сумма цифр числа

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ZOD
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 24.03.2004 (Ср) 19:54
Откуда: Barnaul

Сумма цифр числа

Сообщение ZOD » 14.09.2004 (Вт) 14:30

Есть, например, число 371. Как посчитать сумму цифр, т.е. 3+7+1?

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 14.09.2004 (Вт) 14:38

Можна по-разному. Первое что пришло в голову делить нацело на сотни, потом отнять от числа результат*100, результат делить на десятки и т.д
Можно преобразовать в текст, выдергивать каждый символ и преобразовав их в числовое значение сложить.
Я думаю что есть и другие способы :D

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 14.09.2004 (Вт) 15:53

b=cstr(371)
s=0
for i=1 to len(b)
s=s+val(mid(b,i,1))
next i

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 14.09.2004 (Вт) 15:59

Vitaly1 писал(а):b=cstr(371)
s=0
for i=1 to len(b)
s=s+val(mid(b,i,1))
next i

Ну да... что-то вроде этого.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2004 (Вт) 17:25

Эх, строковые любители...
Код: Выделить всё
n = 371: s = 0
While n > 0
    s = s + (n Mod 10)
    n = n \ 10
Wend
Изображение

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 14.09.2004 (Вт) 23:44

b=cstr(371)
s=0
for i=1 to len(b)
s=s+val(mid(b,i,1))
next i


или

b=cstr(371)
s=0
for i=1 to len(b)
s=s+asc(mid(b,i,1))-48
next i
Ученье - свет, неученых - тьма.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.09.2004 (Ср) 10:27

tyomitch, строки они проще :)
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 10:30

Они хороши там, где они естественны, но имхо приплетать их для арифметических операций - бред полный.
Ср. http://thedailywtf.com/archive/2004/09/14.aspx , http://thedailywtf.com/archive/2004/09/07/1587.aspx
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.09.2004 (Ср) 11:16

Так уж и бред :)
Вот помню, был молодой и зеленый, и подобный подход казался мне вполне нормальным :)
А уж в ZX Spectrum в бейсик был встроен полноценный эвалуатор, так там я строки вообще за здрасти использовал.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 4

    TopList  
cron