![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Как прибавить числа в строке друг на друга
например у нас есть строка в котором числа 123456789 а нам надо прибавить их друг на друга 1+2+3+4+5+6+7+8+9=45 как это можно сделать? |
|
#2
|
|||
|
|||
|
Код:
function abc(s:string):integer; var i:integer; begin for i:=1 to Length(s) do Result:=Result+StrToInt(s[i]); end; как-то так |
|
#3
|
||||
|
||||
|
у меня ответ вместо 45 получаеться 1243021
|
|
#4
|
||||
|
||||
|
Код:
function abc(s:string):integer; var i:integer; begin Result:=0; for i:=1 to Length(s) do Result:=Result+StrToInt(s[i]); end; |
|
#5
|
|||
|
|||
|
С десятичными уже не будет работать надо условие добавить что после 9 считывать i+1,и т.д.
|
|
#6
|
||||
|
||||
|
Цитата:
Тут же не сложение двух чисел, а сложение цифр числа. В последнее время что-то зачастили безсмысленные посты... Перед тем как набивать подобные посты, советую хотя бы разобратьтся в сути вопроса. |
|
#7
|
|||
|
|||
|
Цитата:
Цитата:
|
|
#8
|
||||
|
||||
|
Можно и так поставить задачу, но найди тогда в строке
237345324578673476234632 число больше 9? |
|
#9
|
|||
|
|||
|
Про меньше 9:Это,если цифры идут последовательно,как и было указано в задаче.Сообщением выше написал,что разумнее вводить через пробел.
|
|
#10
|
||||
|
||||
|
Делаю по олд-скульному ))
Код:
function SumNumbers(S:String);
var Ch:char
I:byte;
begin
Result:=0;
For I:=1 to Length(S) do
begin
Ch:=S[i];
Result:=Result+Ord(Ch)-30; //(Конечно правильно Result:=Result+StrToInt(s[i]); но я предполагаю что в строке уже всё цыфры
end;
end; |