По разделам

 

Решение задачи String 25


Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа.

Код (C/C++)

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


void div2(string& s, int& mem) //Деление на 2 числового значения записанного в строке. Вывод строка делёная на 2 и остаток от деления.
{
  int i;
  string s2=s;
  mem=0;
  for (i=0;i<(int)s.length();++i){
    s2[i] = (char)(((((int)(s[i])-48)+10 * mem) / 2)+48);
    if ((((int)(s[i])-48) % 2) == 1){mem = 1;}
    else {mem = 0;}
   };
  if (s2[0]=='0'){ s2.erase(0,1);}
   s.swap(s2);
}

int main()
{
    string s,temp;
    cout << "S:";
    cin >> s;
    string srez;
    int mem=0;
    for (srez="";!(s.empty());){
        div2(s,mem);
        srez+=char(mem+48);
    }
    int i;
    for (i=0;i<(int)srez.length();++i){
        s+=srez[srez.length()-i-1];
        cout <<""<<s[i]<<endl;
    }
    cout <<"="<<s<<endl;
    return 0;
}

Код (Python)

import random

def int2bin(i):
    if i == 0:
        return "0"
    s = ''
    while i:
        if i & 1 == 1:
            s = "1" + s
        else:
            s = "0" + s
        i = int(i/2)
    return s

for i in range(0,5):
    s_integer = str(random.randrange(1,100))
    i_integer = int(s_integer)
    print('{0} = {1:b}'.format(s_integer,i_integer))
    print('{0} = {1}'.format(s_integer,int2bin(i_integer)))
    print()
									

Код (Pascal)

program String5;
var
  i:integer;
  S,Srez:string;
  rez,Num:real;
  mem:byte;
 
Procedure div2(var s:string; var mem:byte); //Деление на 2 числового значения записанного в строке. Вывод строка делёная на 2 и остаток от деления.
 var
  i:integer;
  s2:string;
begin
  mem:=0;
   S2:=S;
  for i:=1 to length(s) do
   begin
    s2[i]:= chr((((ord(s[i])-48)+10*mem) div 2)+48);
    if ((ord(s[i])-48) mod 2) = 1  then mem:=1
    else mem:=0;
   end;
   if s2[1]='0' then delete(s2,1,1);
   s:=s2;
end;
 
 
begin
 Write('S:');
 Readln (S);
 Srez:='';
 while (s<>'') do //делю на 2 остаток от деления запсываю в строку.
  begin
   div2(S,mem);
   Srez:=Srez+chr(mem+48);
  end;
 
//разворачиваю строку
 for i:=1 to Length(Srez) do S:=S+Srez[Length(Srez)-i+1];
 
 Writeln(S);
end.
									




String. Абрамян
String 1 Просмотров: 6207
String 2 Просмотров: 4366
String 3 Просмотров: 2684
String 4 Просмотров: 3718
String 5 Просмотров: 4364
String 6 Просмотров: 4166
String 7 Просмотров: 2891
String 8 Просмотров: 3607
String 9 Просмотров: 2969
String 10 Просмотров: 3157
String 11 Просмотров: 3821
String 12 Просмотров: 3349
String 13 Просмотров: 4015
String 14 Просмотров: 2941
String 15 Просмотров: 3653
String 16 Просмотров: 3597
String 17 Просмотров: 2949
String 18 Просмотров: 2628
String 19 Просмотров: 3607
String 20 Просмотров: 2750
String 21 Просмотров: 2444
String 22 Просмотров: 2619
String 23 Просмотров: 3638
String 24 Просмотров: 2714
String 25 Просмотров: 1984
String 26 Просмотров: 3197
String 27 Просмотров: 2832
String 28 Просмотров: 2989
String 29 Просмотров: 3728
String 30 Просмотров: 2494
String 31 Просмотров: 2907
String 32 Просмотров: 2352
String 33 Просмотров: 2026
String 34 Просмотров: 1984
String 35 Просмотров: 1852
String 36 Просмотров: 1678
String 37 Просмотров: 1430
String 38 Просмотров: 1569
String 39 Просмотров: 1667
String 40 Просмотров: 1939
String 41 Просмотров: 1727
String 42 Просмотров: 3371
String 43 Просмотров: 1651
String 44 Просмотров: 1623
String 45 Просмотров: 2036
String 46 Просмотров: 1358
String 47 Просмотров: 1271
String 48 Просмотров: 1801
String 49 Просмотров: 1531
String 50 Просмотров: 1572
String 51 Просмотров: 1468
String 52 Просмотров: 1430
String 53 Просмотров: 1390
String 54 Просмотров: 1059
String 55 Просмотров: 1201
String 56 Просмотров: 1025
String 57 Просмотров: 1646
String 58 Просмотров: 1743
String 59 Просмотров: 1538
String 60 Просмотров: 1403
String 61 Просмотров: 1199
String 62 Просмотров: 1259
String 63 Просмотров: 1610
String 64 Просмотров: 1475
String 65 Просмотров: 1347
String 66 Просмотров: 1476
String 67 Просмотров: 1145
String 68 Просмотров: 1395
String 69 Просмотров: 1263
String 70 Просмотров: 1972

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет