Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 6
1

Определить функцию, переводящую число в двоичную систему счисления...

27.01.2011, 22:08. Показов 3098. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с решением задач, если конечно не трудно))

1. Решить с помощью вложенного цикла.
Найти все натуральные числа, в диапазоне между m и n (m<n), десятичная запись которых есть строго возрастающая последовательность цифр. Подсчитать количество таких чисел.

2. Определение и вызов функций.
Определить функцию, переводящую число в двоичную систему счисления и проверяющую, является ли двоичная запись числа симметричной последовательностью нулей и единиц, начинающейся еденицей. Напечатать все числа, не превосходящие n, двоичная запись которых есть симметричная последовательность.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2011, 22:08
Ответы с готовыми решениями:

Написать и протестировать функцию, переводящую число из десятичной системы в двоичную, четверичную и восьмеричную
1. Написать и протестировать функцию, переводящую число из десятичной системы в двоичную,...

Перевести число в двоичную систему счисления
Дано число N ({2}^{-31}\leq N \leq 0). Как перевести в двоичную систему счисления?

Определить функцию bin(x), переводящую число х из десятичной системы счисления в двоичную
1) Даны натуральные числа a, b, c. Определить функцию bin(x), переводящую число х из десятичной...

Определить функцию ter (x), переводящую число х из десятичной системы счисления в троичную
Написать программу: Даны натуральные числа a, b, c. Определить функцию ter (x), переводящую число...

11
49 / 49 / 13
Регистрация: 21.04.2009
Сообщений: 265
28.01.2011, 02:25 2
1)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
int main()
{
    int c=0;    
    int cnt=0; 
    int i=0;
    int arr[2];
    int mas[10] = {123, 532, 222, 113, 6788, 12212, 543, 790, 110, 147};
    //4
    
    for(int n=0; n<10; n++)
    {       
        i=0;
        while(mas[n]!=0 && i<2)
        {
            c=mas[n]%10;                    
            mas[n]/=10;     
            arr[i] = c;
            i++;
        }
        if(arr[0] > arr[1]) cnt++;  
    }
    std::cout << cnt <<"\n";
 
    return EXIT_SUCCESS;
}
Добавлено через 16 минут
Правда тут я не указал диапазон, но думаю, ты сам справишься!
0
4784 / 2591 / 896
Регистрация: 29.11.2010
Сообщений: 5,617
28.01.2011, 21:35 3
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <cstring>
#include <cstdio>
#include <cstddef>
 
bool IsBinarySymmetrical(const int number) {
  size_t buffer_size = sizeof(int) * 8;
  char binary_buffer[buffer_size];
 
  size_t bit_counter = 0;
  do {
    binary_buffer[bit_counter] = ((number >> bit_counter) & 1) + '0';
  }  while ((number >> (++bit_counter)) != 0);
 
  if (binary_buffer[bit_counter - 1] == '0')
    return false;
 
  for (size_t i = 0; i < bit_counter / 2; ++i)
    if (binary_buffer[i] != binary_buffer[bit_counter - i - 1])
      return false;
  return true;
}
 
int main(int argc, char *argv[]) {
  int first = 0;
  int last  = 1000;
 
  for (int a_number = first; a_number <= last; ++a_number)
    if (IsBinarySymmetrical(a_number))
      printf("%d\n", a_number);
 
  return 0;
}
0
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
29.01.2011, 00:30 4
grrrrr, что за магические цифры?
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int count_of_numbers(int source)
{
    int p=source/10, k=1;
    while (p!=0)
    {
        p/=10;
        k++;
    }
    return k;
}
 
int number_in_current_position(int source, int position)
{
    int n=count_of_numbers(source), p=source;
    if (position<=0 || position>n) return -1;
    while (count_of_numbers(p)!=position)
    {
        p/=10;
    }
    return p%10;
}
 
bool check_for_increase(int source)
{
    int n=count_of_numbers(source);
    int x=number_in_current_position(source,1),y;
    for (int i=2; i<=n; i++)
    {       
        y=x;
        x=number_in_current_position(source,i);
        if (x<=y) return false;
    }
    return true;
}
 
void main()
{
    int n, m;
    cout<<"Input n and m: ";
    cin>>n>>m;
    int k=0;
    for (int i=n; i<m; i++)
    {
        if (check_for_increase(i)) k++;
    }
    cout<<"Result - "<<k<<" numbers in required sequence";
    _getch();
}
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
29.01.2011, 00:46 5
Цитата Сообщение от Ambeon Посмотреть сообщение
Найти все натуральные числа, в диапазоне между m и n (m<n), десятичная запись которых есть строго возрастающая последовательность цифр. Подсчитать количество таких чисел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <iterator>
 
bool chek(int n)
{
    std::ostringstream ost;
    ost << n;
    std::string n_ = ost.str(), n__ = n_;
 
    std::string::iterator it = std::unique(n__.begin(), n__.end());
    n__.resize(it - n__.begin());
    std::sort(n__.begin(), n__.end());
 
    return n_ == n__;
}
 
size_t cnt_dig(int n)
{
    int cnt = 0;
    for( ; n; n /= 10, ++cnt)
                   ;
    return cnt;
}
 
int main()
{
    int m = 0, n = 0, cnt = 0;
 
    std::cout << "\n\nEnter m -> ";
    std::cin >> m;
 
    std::cout << "\n\nEnter n -> ";
    std::cin >> n;
 
    for(int num = m + 1; num < n; ++num)
        if(chek(num) && cnt_dig(num) >= 2)
        {
            std::cout << num << ' ';
            ++cnt;
        }
    std::cout << "\n\nCount num  -> " << cnt << std::endl;
 
    return 0;
}
0
21 / 20 / 11
Регистрация: 12.11.2010
Сообщений: 37
01.06.2011, 15:15 6
Блин, чет я не понял. Как именно во второй задаче определить, является ли двоичная запись числа симметричной последовательностью нулей и единиц? Кто нить знает алгоритм?
0
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
01.06.2011, 16:06 7
Цитата Сообщение от LilDire Посмотреть сообщение
является ли двоичная запись числа симметричной последовательностью нулей и единиц?
"симметричны" - можно понять двояко, вот один из вариантов.
C++
1
2
3
bool symmetry(int n){
      return !(((n&0xFFFF0000)>>16)^(n&0xFFFF));
}
если подразумевается зеркальная симметрия, то этот код не подходит.
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
01.06.2011, 16:08 8
Цитата Сообщение от Kastaneda Посмотреть сообщение
"симметричны" - можно понять двояко, вот один из вариантов
"Симметрично" относится к записи числа, а потому там всё однозначно
0
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
01.06.2011, 16:23 9

Не по теме:

Что-то я сегодня математики перечитал...


Имеем число (в бинарном виде) 1100 1100 - симметрично?
А так 1100 0011 - зеркальное отражение является симметрией?
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
01.06.2011, 16:34 10
Цитата Сообщение от Kastaneda Посмотреть сообщение
Имеем число (в бинарном виде) 1100 1100 - симметрично?
Ещё раз. Речь идёт о записи числа. Да и с какого перепугу "1100 1100" симметрично и откуда вообще взялся пробел в записи числа? И почему не "110 01 100"?
0
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
01.06.2011, 16:51 11
Цитата Сообщение от Evg Посмотреть сообщение
откуда вообще взялся пробел в записи числа
Это я для лучшей читаемости сделал.

Цитата Сообщение от Evg Посмотреть сообщение
Да и с какого перепугу "1100 1100" симметрично
Да, гоню я ... Мозг устал сегодня.

Не по теме:

Как блондинка : выучил таблицу умножения - забыл как сфетофором пользоваться:D

0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
01.06.2011, 20:28 12
Цитата Сообщение от Kastaneda Посмотреть сообщение
Мозг устал сегодня
Вот и я про что
0
01.06.2011, 20:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2011, 20:28
Помогаю со студенческими работами здесь

Как написать программу переводящую число из десятичной системы счисления в двоичную
Подскажите как написать программу переводящую число из десятичной системы счисления в...

Даны натуральные числа a, b, c. Определить функцию bin(x), переводящую число х из десятичной системы счисления
Даны натуральные числа a, b, c. Определить функцию bin(x), переводящую число х из десятичной...

Описать функцию, переводящую целое число из десятичной системы в двоичную
Описать функцию, переводящую целое число из десятичной системы в двоичную. Необходимо реализовать...

Написать программу, переводящую любое исходное десятичное число(тип longint) в шестнадцатеричную, восьмеричную и двоичную системы счисления
Двоичное число. Во входном файле Input.txt записаны одиннадцатизначные целые числа. Число приведено...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru