#include <iostream>
#include <cmath>
#include <algorithm>
#pragma GCC optimize("Ofast")
#define ll long long
#define ld long double
using namespace std;
ll digits(ll a){
ll c = 0;
while(a > 0){
a /= 10;
c++;
}
return c;
}
signed main() {
srand(time(NULL));
const ll n = 25;
ll sum = 0;
ll mas[n];
for(ll i = 0; i < n; i++){
mas[i] = rand() % 493 - 246;
cout << mas[i] << " ";
if(digits(mas[i]) == 2 && mas[i] % 4 == 0)
sum += mas[i];
}
cout << "\n" << sum;
}
1.Найти сумму чётных цифр числа.
uses crt;
var a,x:integer;
i,s:integer;
begin
clrscr;
writeln('Vvedite chislo');
readln( a ); x:=a;
s:=0;
while ( x<>0 ) do
begin
if x mod 2 =0 then s:= s + (x mod 10);
x:= x div 10;
end;
writeln( 'Summa= ', s );
readln;
end.
2.Вывести на экран таблицу умножения.
uses crt;
var a: array [1..10,1..10] of integer;
i,j:integer;
begin
clrscr;
for i:=2 to 10 do
begin
writeln;
for j:=1 to 10 do
write(i*j,' ');
end;
writeln;
readln;
end.
3.Найти все двухзначные числа, сумма которых равна а.
uses crt;
var a,x,i,s:integer;
begin
clrscr;
writeln('Vvedite a');
readln(a);
for i:=10 to 99 do
begin
x:=i;
s:=0;
while (x<>0) do
begin
s:=s+(x mod 10);
x:=x div 10;
end;
if s=a then write(i,' ');
end;
readln;
end.
4.Найти количество и сумму чётных делителей.
uses crt;
var s,k,i,a:integer;
begin
clrscr;
writeln('Vvedite chislo');
readln(a);
i:=2;
s:=0;
k:=0;
while i<>a do
begin
if (a mod i =0) and (i mod 2=0) then
begin
s:=s+i;
k:=k+1;
end;
i:=i+1;
end;
writeln('Summa chisletelei =',s);
writeln('Kolichestvo delitelei= ',k);
readln;
end.
s := 0; (начальное значение счётчика)
for i := 1 to 9 do (цикл по i)
if A[i - 1] < A[i] then begin (если текущий элемент больше предыдущего,
s := s + 1; то увеличиваем счётчик на 1)
t := A[i]; (меняем текущий элемент местами с предыдущим)
A[i] := A[i - 1];
A[i - 1] := t
end;
Последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t).
Итак, моделируем, что делает программа и считаем число обменов.
0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
1) 6 9 7 2 1 5 0 3 4 8 -> 9 6 7 2 1 5 0 3 4 8 ОБМЕН
2) 9 6 7 2 1 5 0 3 4 8 -> 9 7 6 2 1 5 0 3 4 8 ОБМЕН
3) 9 7 6 2 1 5 0 3 4 8 ОК
4) 9 7 6 2 1 5 0 3 4 8 ОК
5) 9 7 6 2 1 5 0 3 4 8 -> 9 7 6 2 5 1 0 3 4 8 ОБМЕН
6) 9 7 6 2 5 1 0 3 4 8 ОК
7, 8, 9) Ноль будет "всплывать" в конец, 3 ОБМЕНА
Всего будет 6 обменов, s = 6.
ответ: 6