Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет acmp.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
13 Мб
Скачать
☆

Болты и гайки

Вновь созданная фирма купила заброшенные склады на окраине города. Новому заведующему складами поручили произвести учёт в короткие сроки. Всё шло хорошо, пока случайно не рассыпали контейнеры с болтами и гайками на каждом складе, после чего собрали их в общие (для болтов и гаек) контейнеры, потеряв при этом несколько деталей.

Помогите оценить нанесённый ущерб на каждом складе, приняв во внимание, что, помимо потерянных деталей, болт (или гайка) считается непригодным, если он не имеет соответствующей гайки (или болта).

#include <iostream>

using namespace std;

int main()

{

int g,sg,b,sb,a,c;

double pb,pg;

cin>>b>>pb>>sb;

cin>>g>>pg>>sg;

pb=b*(pb/100);

pg=g*(pg/100);

g=g-pg;

b=b-pb;

if(g>b) {a=g-b;pg+=a;}

else {a=b-g; pb+=a;}

c=pg*sg+pb*sb;

cout<<c;

}

Алгоритм решения:

В первой строке вводится количество болтов, процент потерянных болтов, и стоимость.

Во второй строке вводится количество гаек, процент гаек, и стоимость.

Сначала находим количество потерянных гаек и болтов(pg и pb).

Дальше найдем количество оставшихся гаек и болтов, если гаек больше чем болтов то находим количество лишних гаек, и прибавляем к потерянным гайкам, иначе находим количество лишних болтов и прибавляем к потерянным болтам. Выводим стоимость потерянных и лишних болтов и гаек.

Кругляши

Однажды в просторах рунета появился следующий ребус:

157892 = 3

203516 = 2

409578 = 4

236271 = ?

Никто так и не смог его разгадать. Позже оказалось, что число в правом столбце равно сумме "кругляшей", которые есть в цифрах числа, расположенного слева. Ваша задача написать программу, которая определяет, сколько кругляшей в числе.

#include <iostream>

#include <string>

using namespace std;

int main()

{

string a;

cin>>a;

int b=a.size();

int sum=0;

for (int i=0;i<b;i++)

{

if(a[i]=='6' || a[i]=='9' || a[i]=='0') sum=sum+1;

else if (a[i]=='8')sum=sum+2;

}

cout<<sum;

}

Алгоритм решения:

Вводим строку а, узнаем длину строки = b. В цикле от 0 до b, если элемент строки равен 6,9,0 то увеличиваем sum на 1, иначе если элемент строки равен 8, то sum увеличиваем на 2. Выводим sum.

Наименьшая система счисления

Известно, что основанием позиционной системы счисления называют количество различных символов, используемых для записи чисел в данной системе счисления. Также известно, что любое число x в b-ичной системе счисления имеет вид x=a0∙b0+a1∙b1+…+an∙bn, где b ≥ 2 и 0 ≤ ai < b.

Для записи чисел в b-ичной системе счисления, где b ≤ 36, могут быть использованы первые b символов из следующего списка 0,1,…, 9, A, B, …, Z. Например, для записи чисел в троичной системы используются символы 0, 1, 2, а в двенадцатеричной - 0,1,…, 9, A, B.

Требуется написать программу, которая по входной строке S определит, является ли данная строка записью числа в системе счисления, с основанием не большим 36, и, если является, определит минимальное основание этой системы счисления.

Алгоритм решения:

Вводим строку s. Если она не является записью числа в некоторой системе счисления, выводим -1. Если строка содержит в себе все нули , выводим -2, так как минимальная система счисления двоичная. Иначе находим в цикле от 0 до конца строки наибольший код элемента по таблице ASCII, выводим код+1.