Имеем одномерный массив(таблицу) из 10 элементов
..............................................................................................................
n = 1......2.......3......4......5......6......7......8......9.......10 номера по порядку
mas= 18.....10......-1......6.....12....4......-16....7.....15.......-3...значения элементов
.................................-1............-1.............-1.........
s=0
две строки for i:=3 to 10
если по модулю какой-то элемент начиная с третьего больше 10 то заменяем на элемент стоящий на 2 позиции назад
|-1|>10 нет, |6|>10 нет |12|>10 Да число 12 заменяем на -1
|4|>10 нет |-16|>10 Да Заменяем на -1
|7|>10 нет |15|>10 Да Заменяем на -1 |-3|>10 Нет
Получили новый массив
18 10 -1 6 -1 4 -1 7 -1 -3
Следующий блок программы Для i от 1 до 10 Если элемент <0 то в копилку Вообщем складываем все отрицательные элементы
s= -1 +(-1)+(-1)+(-1)+(-3)= -7
Выводим число - 7
//перевод числа из системы исчисления
//с основанием от 2 до 9 в десятичную
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int pss(char sr[80], int i, int osn)
{
static int s;
char ch=sr[i-1];
if (i==strlen(sr)) s=1;
s=s*osn;
if (1<i) return (atoi(&ch)+pss(sr,i-1,osn)*osn);
else return (atoi(&ch));
}
int main(int argc, char** argv)
{
int osn=0;
char st[80];
cout<<" задайте основание (от 2 до 9) ";
cin>>osn; cout<<endl;
cout<<"число: "; cin>>st; cout<<endl;
cout<<"в десятичной системе: "
<<pss(st,strlen(st),osn);
return(0);
}
<span>
</span>
Var x,s:integer;
begin
s := 0;
read(x);
while x <> 0 do
begin
if (x mod 3 = 0) and (x mod 10 = 4)
then s := s + x;
read(x)
end;
write(s)
end.