Программ заранее Создайте класс Int, имитирующий стандартный тип int. Единственное
поле этого класса должно иметь тип int. Создайте методы, которые
будут устанавливать значение поля, равным нулю, инициализировать
его целым значением, выводить значение поля на экран и складывать
два значения типа Int .
Напишите программу, в которой будут созданы три объекта класса Int, два из
которых будут инициализированы. Сложите два инициализированных
объекта, присвойте результат третьему, а затем отобразите результат на
экране.
1) 511
2) 584
Объяснение:
1) Максимальным трёхзначным числом в восьмеричной системе счисления является 777
777₈ = 7 * 8² + 7 * 8¹ + 7 * 8⁰ = 7 * 64 + 7 * 8 + 7 * 1 = 511₁₀
2)
547₈
+
341₈
---------
1110₈
7 + 1 = 10 (0 пишем, 1 в уме)
4 + 4 = 10 10 + 1 (который был в уме) = 11 (1 пишем, 1 в уме)
5 + 3 = 10 10 + 1 (который был в уме) = 11 (пишем 11)
Полную таблицу сложения в 8 системе счисления смотри на картинке
1110₈ = 1 * 8³ + 1 * 8² + 1 * 8¹ + 0 * 8⁰ = 1 * 512 + 1 * 64 + 1 * 8 + 0 * 1 = 512 + 64 + 8 = 584₁₀
или
547₈ = 5 * 8² + 4 * 8¹ + 7 * 8⁰ = 5 * 64 + 4 * 8 + 7 * 1 = 320 + 32 + 7 = 359₁₀
341₈ = 3 * 8² + 4 * 8¹ + 1 * 8⁰ = 3 * 64 + 4 * 8 + 1 * 1 = 192 + 32 + 1 = 225₁₀
359₁₀ + 225₁₀ = 584₁₀
int cnt_min=0; int cnt_max=0;
for(int i=0; i<x; i++) cin >> d;
int d_max = digits[0];
for(int i=0; i<x; i++) { if(d_max < digit[i]) d_max = digit[i];}
int d_min = digits[0];
for(int i=0; i<x; i++) { if(d_min > digit[i]) d_min = digit[i];}
for(int i=0; i<x; i++) { if(d_max < digit[i]) d_max = digit[i];}
for(int i=0; i<x; i++) { if(d_max == digit[i]) cnt_max++;}
for(int i=0; i<x; i++) { if(d_min == digit[i]) cnt_min++;}
cout << "min= " << cnt_min << " max= " << cnt_max << endl;
вторая задача - подумай сам, она почти аналогичная