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

Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи - C++

Восстановить пароль Регистрация
 
 
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 17:35     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #1
Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи. Использовать s - прибавление 1, =, <, +, -, *, : - целочисленное деление, % - остаток от деления. Помогите, пожалуйста, написать эту программу на си++ с использованием только вот этих операций и, наверное, только библиотеки stdio.h
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 17:35     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи
Посмотрите здесь:

C++ создал прогу, которая должна каждый раз рандомно записывать числа в массив и находить сколько чисел есть которые начинаются с цифры заданной пользоват
C++ Найти все цифры десятичной записи числа(не понимаю смысл задания)
C++ Даны два натуральных числа. Определить сколько чисел на отрезке между ними являются факториалами
C++ Найти сколько чисел на отрезке [x;y] начинаются с цифры 8 в шестнадцатеричной записи.
Найти сколько чисел на отрезке [x;y] начинаются с цифры 8 в шестнадцатеричной записи C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 17:38     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #2
maxim12345, а вы ее сами решить пробовали?
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 17:58  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #3
Пробовал. Вообще мне надо ее написать другим языком - примитивным. Идеи, как писать, есть (но очень абстрактые). Да и не могу ж я проверить, правильно ли написал на этом языке, а тут хоть на си++ компилятор проверит, а я потом как-нибудь переведу на этот язык.

Добавлено через 15 минут
Можете помочь? пускай даже для десятичной записи
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 18:04     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #4
maxim12345, напишу набросок)

Добавлено через 4 минуты
maxim12345,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bool good (int numb)
{
    while (numb >= 16)
        numb = numb / 16;
    if (numb == 8) return true;
    else return false;
}
 
int main ()
{
    int a[100];
    for (int i=0;i<100;i++)
    {
        if (good(a[i])) cout << "Число удовлетворяет условию" << endl;
    }
    return 0;   
}
Могу жестко ошибиться по поводу проверки числа)
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 18:10  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #5
А можно как-нибудь только используя указанные операции, ибо только учусь, не понимаю этого еще(( ну там sacanf, printf, присваивания циклы с for...
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 18:15     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #6
maxim12345, а как вы предлагаете работать без циклов? Я такого способа не вижу. Тем более что х и у задаются в самой программе
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 18:22  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #7
Нет, я точно знаю, что должно быть 2 цикла (препод сказал) их надо сделать чтобы это были циклы for (...) т.к. пока мы знаем только такие циклы, можете так написать?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 18:30     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #8
maxim12345, омг) попробуйте так

C++
1
2
3
4
5
6
7
bool good (int numb)
{
    for (;numb >= 16;)
        numb = numb / 16;
    if (numb == 8) return true;
    else return false;
}
а лучше используйте как выше, сдавайте преподу. Препод скажет: фаг, откуда ты про while знаешь? А ты скажешь: я мужик, я загуглил. И он уважать тебя начнет сразу. Вот так)
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
18.10.2013, 18:36     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #9
maxim12345, а это переписать на Си++ не судьба?

Javascript
1
2
3
4
5
6
7
8
var x=0x75, y=0x994, res=0, q;
 
for(; x<y; ++x) {
  for(q=x; q>=16; q>>>=4);
  res += q===8;
}
 
console.log(res);
C++
1
2
3
4
5
6
7
8
unsigned x=0x75, y=0x994, res=0, q;
 
for(; x<y; ++x) {
  for(q=x; q>=16; q>>=4);
  res += q==8;
}
 
printf("%u\n", res);
Битовый сдвиг на 4 можно заменить делением на 16 в си:
C++
1
2
  for(q=x; q>=16; q>>=4);
  for(q=x; q>=16; q/=16);
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 18:38  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #10
ахаха, ну так то да, но тем не менее, можно сделать ее без булей этих (я даже не знаю, что это) просто сделать типа как вот эта программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(int argc, char** argv)
{ int x=0;
    int k=1;
    scanf("%d",&x);
    for(int i=2;i<x && k==1;i=i+1)
 
       {
        if (x%i==0)
        {
            k=0;
        }
           }
    printf ("%d\n", k);
    return 0;
 
 
}
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 18:40     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #11
maxim12345, во многих случаях можно обойтись без "булей". Можно строки в матрице менять не в цикле, а с помощью переменных x1,x2,x3,xn. Но для удобства вводят и "були", и циклы и прочее. Не привыкайте к принципу "чем меньше сложного, тем лучше"
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 18:40  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #12
оно б все замечательно, но мы этого еще не изучали((
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
18.10.2013, 18:42     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #13
Цитата Сообщение от maxim12345 Посмотреть сообщение
просто сделать типа как вот эта программа
Чем моя не такая? И операции перечисленные, и циклов 2, и именно for'ы...
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 18:48  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #14
я не смогу просто потом переписать с булями на тот язык, а если эта программа будет написана используя те вещи, которые в проверке числа на простоту, то смогу, наверное, можете написать именно наподобие проверки на простоту?

Добавлено через 1 минуту
а можете тем не менее написать ее наподобие проги, что я скинул, пожалуйста?

Добавлено через 2 минуты
я не понимаю, что такое res, unsigned... сори за тупость((
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 18:52     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #15
maxim12345, не обращайте внимание на "вы еще не изучали") Вам будет в плюс то, что вы изучили что то сами. Тем более что подобные вещи в нормальном программировании будут активно использоваться. Тот же "буль"))))
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
18.10.2013, 18:52     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #16
Цитата Сообщение от Folko Посмотреть сообщение
Не привыкайте ...
И вот такое писать тоже привыкать не надо:
Цитата Сообщение от Folko Посмотреть сообщение
C++
1
2
if (numb == 8) return true;
else return false;


Цитата Сообщение от maxim12345 Посмотреть сообщение
а можете тем не менее написать ее наподобие проги, что я скинул, пожалуйста?
Так и написано.

Цитата Сообщение от maxim12345 Посмотреть сообщение
я не понимаю, что такое res, unsigned... сори за тупость((
unsigned - это тот же int, только беззнаковый.
res - имя переменной.
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 19:01  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #17
q>>=4 а вот это что такое?
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
18.10.2013, 19:04     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #18
Цитата Сообщение от maxim12345 Посмотреть сообщение
q>>=4 а вот это что такое?
Битовый сдвиг. Я же написал, что можно заменить на q/=16.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
18.10.2013, 19:12     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main(void) {
    int n1, n2, count;
    int x,y;
    scanf("%d",&x);
    scanf("%d",&y);
    count = 0;
    n1 = x/16;
    n1 = n1*16 + 8;
    n2 = (y-1)/16;
    n2 = n2*16+8;
    if(n1<x)  n1+=16;
    if(n2>=y) n2-=16;
    if(n2>=n1)
        count = (n2-n1)/16;
    printf("n1 = %d, ",n1);
    printf("n2 = %d, ",n2);
    printf("count = %d\n",count);
    return 0;
}
Решение без циклов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2013, 19:24     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи
Еще ссылки по теме:

В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5 C++
C++ Найти наибольшую и наименьшую цифры в записи данного натурального числа
Сформировать массив B из чисел массива A[n], в записи которых встречаются две подряд идущие одинаковые цифры C++

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

Или воспользуйтесь поиском по форуму:
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
18.10.2013, 19:24  [ТС]     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи #20
C++
1
2
3
4
5
6
7
8
9
10
Alg Add; 
arg x, y; 
u = x; 
v = 0; 
while v < y do 
u = succ(u); 
v = succ(v); 
end;
Add = u; 
end;
а можете написать эту прогу на таком языке, на котором написана вот эта? и, кстати, как вообще он называется?) succ - это прибавление 1
Yandex
Объявления
18.10.2013, 19:24     Найти, сколько чисел на отрезке [x;y) начинаются с цифры 8 в шестнадцатеричной записи
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru