Примеры перевода из десятичной СС в двоичную, восьмеричную и шестнадцатиричную СС<span>Двоичная СС (q=2). Переведем число 2310 в двоичное представление. Используя вышеизложенное правило, разделим число 23 на основание целевой СС - 2: 23/2 = 11 и 1 в остатке. Младшая цифра двоичного числа - 1. Делим 11 на 2, получаем 5 и 1 в остатке. Следующая цифра числа - тоже 1. Записываем ее слева от предыдущей цифры - 11. Далее получаем 2 и 1 в остатке, а само число - 111. Далее, 2/2 = 1 и 0 в остатке. Получилось число 0111. Последнюю единицу делим опять на 2, получаем в результате 0 (это значит, что процесс перевода закончен) и в остатке - 1. Поолучили число 10111. Таким образом, 2310=101112.</span><span>Восьмеричная СС (q=8). Перевдем десятичное число 100 в восьмеричный вид:
100/8=12 и 4 в остатке
12/8=1 и 4 в остатке
1/8=0 и 1 в остатке
Получили 10010=1448.</span><span>Шестнадцатиричная СС (q=16). Перевдем десятичное число 1000 в шестадцатиричную СС:
1000/16=62 и 8 в остатке
62/16=3 и 14 в остатке
3/16=0 и 3 в остатке
Вспомним, что цифры, большие девяти, обозначаются буквами. Цифре 14 соответствует буква E. Получили 100010=3E816.</span>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d1,d2,d=0,n=0;
srand (time(NULL));
a = rand() % 50 + 1;
b = rand() % 50 + 1;
c = rand() % 20 + 1;
while (c>a) a = rand() % 50 + 1;
while (c>b) b = rand() % 50 + 1;
printf ("%d %d %d\n", a, b, c);
d1 = a; d2 = b;
while (d1>=c){
d2 = b;
while (d2>=c){ n++; d2 -= c; }
d1 -= c;
}
printf("%d\n", n);
for (int i=0; i<(10-1); i++) d += n;
d = -d;
printf("%d", d);
return 0;
}
Пример:
<span>27 42 4
60
-540</span>
<h3>PascalABC.NET 3.4.2, сборка 1826 от 07.10.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var x: int64;
Readln(x);
Format('{0:#0 000 00 0}', x).Println
end.
Векторная. У нас в тестах тоже такое было я написал векторная и это правильно
//PascalABC.NET 3.2 сборка 1318
Var
s:array[1..60] of char;
i,j,len:integer;
begin
len:=60;
for i:=1 to 60 do
read(s[i]);
i:=1;
while(i<=len-3) do
begin
if (s[i]='m') and (s[i+1]='a') and (s[i+2]='m') and (s[i+3]='a') then
begin
s[i]:='d';
s[i+1]:='e';
s[i+2]:='d';
for j:=i+3 to len-1 do
s[j]:=s[j+1];
dec(len);
end;
inc(i);
end;
for i:=1 to len do
write(s[i]);
end.