Странная задача, однако..но:
program z1;
var k:integer;
begin
writeln('Введите число');
readln(k);
while(k>0) do
k:=k-1;
writeln(k);
end.
<u /> <u> 123 I 61 I 30 I 15 I 7 I 3 I 1 I
</u> 1 I 1 I 0 I 1 I 1 I 1 I 1 I
<-----------------------------------------------
Ответ; 123 = 1111011 в двоичной с/с
Теперь объяснение:
1) Разлинуй так, как показано на схеме.
2) Число 123 : 2 = 61(ост.1)
3) Число 61 идёт по верхней строчке. Остаток 1 идёт в нижнюю строчку.
4) 61 : 2 = 30 (остаток 1). Число 30 - следующее число по верхней строчке.
Остаток 1 - следующее по нижней строчке.
5) Делим 30 на 2, Делится без остатка
30 : 2 = 15 (ост.0) 15 идёт по верхней строчке.
0 идёт по нижней строчке
6) Деление цифр верхнего ряда на 2продолжаем до тех пор, пока число не
закончится.
В нижней строчке у нас будут только единицы и нули.
7) Начинать записывать число в двоичной системе счисления <u>необходимо </u>
<u> справа налево</u>, т.е. с конца, как показано стрелочкой.
И у нас получится 1111011
Ответ: 123 = 1111011 в двоичной с/с.
-----------------------------------------------------------------------------------------------------------------
Если что-то не поймёшь, пиши сообщения на мой профиль.
<u />
Що допомогти ? Нічого ж немає
#include <iostream>
using namespace std;
int main()
{<span>
int a,s;</span><span>
a=1;</span><span> s=0;</span><span>
while (a!=0)
{</span><span>
cin>>a;</span><span>
s=s+a;</span><span>
}</span><span>
cout<<s;
</span>return 0;
}<span>
</span>