М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
bushukova16bk
bushukova16bk
09.02.2020 14:28 •  Информатика

Пусть задано шестнадцатеричное число. рассмотрим все шестнадцатеричные числа, которые можно получить из заданного перестановками цифр (при этом перестановки, в которых на первом месте оказывается 0, из рассмотрения исключаются, а исходное число, наоборот, включается). для каждого такого числа считаем остаток от его деления на 5. требуется найти среднее арифметическое таких остатков всех рассматриваемых чисел. формат ввода входные данные содержат одно шестнадцатеричное число, состоящее из не более чем 20 знаков. цифры, большие 9, обозначаются строчными латинскими буквами от ‘a’ до ‘z’. гарантируется, что первой цифрой числа не является 0. формат вывода выведите среднее арифметическое остатков от деления всех корректных (то есть не имеющих ведущих нулей) чисел, образованных перестановками цифр в данном числе, от деления на 5, с точностью не хуже 10−9. пример 1вводвывод222 1пример 2вводвыводaaa 0

👇
Ответ:
Elina558548
Elina558548
09.02.2020

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

Действительно, доказываем по индукции:

Для числа из одной цифры это тривиально: число из одной цифры совпадает со своей суммой цифр. Переход: пусть число из k цифр ...xyz дает такой же остаток при делении на 5, что и сумма цифр ... + x + y + z. Покажем, что число из (k + 1) цифры ...xyzt дает такой же остаток, что и сумма цифр ... + x + y + z + t: ...xyzt = 16 * ...xyz + t = 15 * ...xyz + (...xyz + t). Первое слагаемое делится на 5, второе по предположению дает такой же остаток, что и (... + x + y + z) + t, что и требовалось.

У любой перестановки сумма цифр такая же, так что и остатки от деления на 5 совпадают. Так что осталось найти сумму цифр исходного числа и найти остаток от деления её на 5, это и будет ответом.

Python 3:

digits = "0123456789abcdef"

n = input()

s = sum(digits.index(digit) for digit in n)

print(s % 5)

4,8(96 оценок)
Открыть все ответы
Ответ:
smusylolo
smusylolo
09.02.2020
Program chik;
var a:array[1..1000]of integer;
h,i,n,x:integer;
begin
read(n);
h:=0;
for i:=1 to n do
begin
read(a[i]);
end;
read(x);
for i:=1 to n do
begin
if(a[i]=x*x)then h:=h+1;
end;
write(h);
end.
2)
program chik2;
var a,h:integer;
begin
a:=5;
h:=0;
while a<>0 do
begin
read(a);
if(a<0)then h:=h+1;
end;
write(h);
end.
3)program chik3;
var a,h,s,p:real;
begin
a:=5;
h:=0;
while a<>0 do
begin
read(a);
s:=s+a;
h:=h+1;
end;
p:=s/h;
write(p);
end.
4)program chik4;
var n,j,i:longint;
begin
read(n);
for i:=1 to n do
begin
for j:=1 to i do
begin
write(j,' ');
end;
writeln;
end;
end.
 УДАЧИ!
4,7(12 оценок)
Ответ:
AVlone
AVlone
09.02.2020
/*
C++ compiler
gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
Copyright (C) 2015 Free Software Foundation, Inc.
*/

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int count = 0;
    cout <<"Введите количество призывников: ";
    cin >>count;
    if (count>17) count=17;
    vector<int> tanks(count);
    for (unsigned i=0; i<tanks.size(); i++) cin >>tanks[i];
    int min=300, max=0;
    for (unsigned i=0; i<tanks.size(); i++)
    {
        if (min>tanks[i]) min=tanks[i];
        if (max<tanks[i]) max=tanks[i];
    }
    int cnt=0;
    for (unsigned i=0; i<tanks.size(); i++)
    {
        if ((tanks[i]!=min) and (tanks[i]!=max)) cnt++;
    }

    cout <<cnt <<endl;
}
4,5(67 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ