0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 3
1

Найти и вывести на экран сумму цифр, стоящих на нечетных местах вводимого натурального числа

24.12.2014, 14:21. Показов 1428. Ответов 9
Метки нет (Все метки)

Найти и вывести на экран сумму цифр, стоящих на нечетных местах, вводимого натурального числа.Помогите решить
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2014, 14:21
Ответы с готовыми решениями:

Работа с простой переменной. Найти сумму цифр числа,стоящих на нечетных местах
Дано натуральное число не менее шести разрядов. Найти сумму цифр данного числа стоящих на нечетных...

Дано натуральное число не менее шести разрядов. Найти сумму цифр данного числа стоящих на нечетных местах
Помогите пожалуйста написать эту задачу с процедурой: var n: longint; i: byte; set1: set of...

Найти сумму цифр, стоящих на нечетных местах в числе
2...Дано натуральное число. Требуется найти сумму цифр, стоящих на нечетных местах в числе.

Требуется найти сумму цифр, стоящих на нечетных местах в числе
C++ как можно минималистичнее, пожалуйста. Дано натуральное число. Требуется найти сумму цифр,...

9
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
24.12.2014, 14:42 2
Цитата Сообщение от Flashvrn Посмотреть сообщение
стоящих на нечетных местах
откуда считаем разряды - слева направа (от старших к младшим) или справа налево (от младших к старшим)?
Считаем от единицы?

На примере, для числа 1279 какие цифры нужно суммировать?


Hint: если можно использовать перевод в строку, то самый простой способ - перевести число в строку и в строке просуммировать нужные разряды...
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
24.12.2014, 14:45 3
А это с формой или в консоли?
Если с формой, то как вводится число?
0
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 3
24.12.2014, 14:48  [ТС] 4
Слева на право от единицы.

Добавлено через 1 минуту
в консоли
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
24.12.2014, 15:02 5
Можно сначала перевернуть число и считать справа налево или создать массив цифр и тоже считать справа налево?
Вам как лучше?
0
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 3
24.12.2014, 15:06  [ТС] 6
массив цифр справа на лево
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
24.12.2014, 15:30 7
Лучший ответ Сообщение было отмечено Flashvrn как решение

Решение

вариант решения через рекурсивную функцию:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function SumOddPositionDigit(N : longint; var Indx : integer) : integer;
var s : integer;
begin
  if (N div 10)=0 then begin
     Indx := 1;
     SumOddPositionDigit := N mod 10
  end
  else begin
    s := SumOddPositionDigit( N div 10, Indx);
    Inc(Indx);
    if odd(Indx) then SumOddPositionDigit := (N mod 10) + s
       else SumOddPositionDigit := s;
  end;
end;
 
var A : longint;
  Ind : integer;
begin
  A := 72856;
  Ind := -1;
  WriteLn(' sum = ', SumOddPositionDigit( abs(A), Ind ) );
end.
Добавлено через 3 минуты
вариант решения через строку:
Delphi
1
2
3
4
5
6
7
8
9
10
11
var
 A : longint;
 s : string;
 i, sum : integer;
begin
  A := 72856;
  s := IntToStr(abs(A));
  sum := 0;
  for i:=1 to Length(s) do if odd(i) then sum := sum + ord(s[i]) - ord('0');
  WriteLn(' sum = ', sum);
end.
Добавлено через 20 минут
Flashvrn, через массив тоже написать решение?!
1
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
24.12.2014, 15:34 8
С массивом цифр.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
var n,m,i,s:integer;
    a:array of byte;
begin
write('n=');
readln(n);
m:=0;
while n>0 do
 begin
  m:=m+1;
  setlength(a,m);
  a[m-1]:=n mod 10;
  n:=n div 10
 end;
s:=0;
for i:=m-1 downto 0 do
if not odd(i) then s:=s+a[i];//поскольку индексы с 0, то считаем сумму четных индексов
write('s=',s);
readln
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32488 / 20974 / 8115
Регистрация: 22.10.2011
Сообщений: 36,245
Записей в блоге: 7
24.12.2014, 15:57 9
Sergio Leone, на кой тянуть ненужный параметр?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{$j+}
function f(n : longint) : integer;
const
  index : integer = -1;
begin
  if n = 0 then
  begin
    index := 1;
    result := 0;
  end
  else
  begin
    result := f(n div 10) + (n mod 10) * ord(odd(index));
    inc(index);
  end;
end;
 
// ...
  WriteLn(' sum = ', f(abs(A)) );
// ...
1
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
24.12.2014, 16:16 10
Цитата Сообщение от volvo Посмотреть сообщение
Sergio Leone, на кой тянуть ненужный параметр?
я до варианта с локальной переменной с задаваемым значением не до шёл...
Хотел сделать вариант с глобальной Index, потом решил, что это некрасиво.
А трюк с {$j+} + const index : integer = -1;
мне даже в голову не пришёл!

Ну что я могу сказать про ваш пример?!..
Браво, маэстро!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2014, 16:16
Помогаю со студенческими работами здесь

Массив: Определить в сумму элементов, стоящих на нечетных местах в массиве и вывести результат на экран.
Дан массив целых K(n,m), определить в нем сумму элементов, стоящих на нечетных местах. Вывести...

Массив: Найти сумму элементов, стоящих на чѐтных местах, и произведение, стоящих на нечетных.
Надо сделать задание: Дан целочисленный массив А, содержащий N элементов. Найти сумму...

Найти сумму четных цифр числа на нечетных местах
Найти сумму четных цифр числа на нечетных местах. помогите пожалуйста

Найти сумму элементов, стоящих на четных местах и произведение элементов, стоящих на нечетных местах
Дан одномерный массив y=(-1; 5,03; 6,2; -8,4; 0,7; 2,6). Найти сумму элементов, стоящих на четных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru