Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ElRicko
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 5
#1

Упростить код - C++

16.04.2012, 21:01. Просмотров 352. Ответов 2
Метки нет (Все метки)

Разработать рекурсивную функцию , возвращающую значение : для перевода числа из двоичной системы счисления в десятичную;

Как упростить код задачи?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include <cstdio>
using namespace std; 
char szBin[] = "101010111";
 
unsigned bin2dec( const char* szBin, const unsigned uCurrVal ){
  assert( 0 == *szBin || '0' == *szBin || '1' == *szBin );
  if( *szBin ){
    return bin2dec( szBin+1, uCurrVal*2 + (*szBin=='0'?0:1) ); 
  }else{
    return uCurrVal;
  }
}
 
int main(){
  printf( "%d", bin2dec( szBin, 0 ) );
}
Добавлено через 2 часа 22 минуты
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 21:01     Упростить код
Посмотрите здесь:

Упростить код - C++
доброго времени суток, я совсем новичок в С++ (да и в программировании) сейчас учусь по Страуструпу, и возникла даже не то что проблема,...

Упростить код - C++
Добрый вечер. Такая задача. Исходные данные: вектор размерностью кратной 3 Выходные данные: вектор, получающийся из исходного...

Упростить код - C++
Добрый вечер! Есть задача: дан вещественный массив, определить номер столбца с наибольшим количеством положительных элементов. После...

Упростить код - C++
Создавал раннее тему с таковой задачей:Нужен код для шифрования русскоязычного текста методом простой подстановки(каждой букве алфавита...

Упростить код - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { size_t rowsCount; cout &lt;&lt; &quot;N: &quot;; cin...

Упростить код - C++
Добрый день, подскажите, можно ли упростить код (используя уровень знаний как в оригинале)? #include &lt;iostream&gt; #include &lt;time.h&gt; ...

Упростить код - C++
Имеется код, как можно сделать что бы подщёт шел не с аа а с 0 // 400.cpp: определяет точку входа для консольного приложения. // ...

Упростить код - C++
Как упростить вот такой код? Спасибо за внимание. #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

упростить код - C++
есть решена задача, надо упростить, из того перебора в инструкции switch() на enum ( перечисленный тип, мб через рандом но чет не выходит...

Упростить код - C++
#include&lt;iostream&gt; using namespace std; int main() { int a, b, c, d = 0, g = 0, f = 0; cin &gt;&gt; a &gt;&gt; b &gt;&gt; c; if (a &gt; 0) d++; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fragnat
11 / 11 / 0
Регистрация: 17.12.2009
Сообщений: 77
16.04.2012, 23:24     Упростить код #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
 
int main () {
    char c[10] = "101010111";
    int result=0;
    for(int i=0;i<9;i++)
    {
        if( (c[i]<'0') || (c[i] > '1') ) break;
        result<<=1;
        result+=c[i]-'0';
    }
    printf("\n%d\n",result);
    getch();
};
Пожалуйста, код основан на: Перевод чисел из двоичной в десятичную систему счисления
Упс, видимо я ошибся с заданием.. оставлю пост тут вдруг кому пригодится.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
17.04.2012, 08:01     Упростить код #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
 
unsigned int binToDec( const unsigned int bin, const int powOfTwo = 1 ) {
   return ( bin > 0 ? bin % 10 * powOfTwo + binToDec( bin / 10, powOfTwo * 2 ) : 0 );
}
 
int main( ) {
   std::cout << binToDec( 1111 ) << std::endl;
 
   return 0;
}
Вывод.
Yandex
Объявления
17.04.2012, 08:01     Упростить код
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru