![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
kr3v3tkus |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 111 Пол: Мужской Реальное имя: Рома Репутация: ![]() ![]() ![]() |
Посмотрите пожалста задачу, я уже в поиске искал. но там выдаёт такое разбивание числа типа 6=5+1 или сумма чисел в массиве, а мне надо типа 605=6+0+5. Вся трудность в том, что я не знаю как применить свойство мода и дива для множества чисел
![]() нужно сделать (123 div 10) mod 10, но если у нас есть такое число - 1234, то ведь надо например для 1 делать просто div 1000, для 2 и див и мод ну и т.д. Помогите или пошлите в пример плз ![]() Составить программу нахождения среднего арифметического значения цифр заданного натурального числа N (1<N<1000000000). Код program lol; var n:longint; k,s:integer; begin k:=1; s:=0; z:=n; writeln('vvesti 4islo'); readln(n); writeln; if (n>1)and(n<1000000000) then {'условие для n'} begin while z>=10 do {'здесь идёт вычисление из скольки цифр состоит число'} begin z:=z div 10; k:=k+1; end; begin {' !!! а здесь надо найти сумму состовляющих число цифр'} while i<=k do end; end; else writeln('neprav1ln1y argyment'); readln; end. -------------------- Цитата . . \__/ (**) (>:=:=:~~ ^ ^ ^ ^ Креветка присваивания :DDD |
![]() ![]() |
Alex7 |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата 1 s:=s+(n mod 10) {s=0+1234567 mod 10 => s=0+234567} Не так. Вот так: 1 s:=s+(n mod 10) {s=0+1234567 mod 10 => s=0+7} Т.Е. mod тебе выдает в результате ту цифру, которая не поделилась нацело на 10(на 10 могут нацело делится числя больше 10, а так, как у нас большое число, то его младшая цифра- единичная не делится, вот ее и получаем). Выполняя циклично этоту операцию ты получишь сумму цифр твоего числа, только тебе нужео запоминать значение n, чтобы в следушем цикле уже модить меньшее число(уже без последней цифры) и т.д. Короче Код while n <> 0 do begin s := s + (n mod 10); n := n div 10; end; Очень правильное и оптимаьное решение. Думаю как находить среднее значение тебе не нужно писать, сам не балбесс ![]() ![]() Сообщение отредактировано: volvo - 3.11.2006 22:43 |
Анастасия |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 41 Пол: Женский Реальное имя: Анастасия Репутация: ![]() ![]() ![]() |
Это по поводу нахождения количества цифр, суммы цифр и переворачивания цифр. Получается так у меня:
Код program kkk; uses crt; var i,t,s,k,m:integer;u:string; BEGIN clrscr; writeln('vvedi chislo '); readln(u);{!!!! -вот что надо читать - сразу строковую величину в цифрах} s:=0; {kolichestvo zifr} t:=0; {suma zifr} for i:=1 to length(u) do begin s:=s+1;val(copy(u,i,1),k,m); t:=t+k; end; writeln( 'kolichestvo zifr = ', s); writeln( 'suma zifr = ', t); write('perevernutoe chislo = '); for i:=length(u) downto 1 do begin write(copy(u,i,1)); end; end. Хотя и понимаю , что не логично вводить цифру строкой. Сообщение отредактировано: Анастасия - 23.10.2006 23:24 |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 18:23 |