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

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

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

Замкнутые области в шестнадцатеричных числах - C++

14.01.2013, 19:17. Просмотров 454. Ответов 0
Метки нет (Все метки)

Имеется задача.
Рассмотрим последовательность чисел от 10000000 до 4FFFFFFF включительно. Для каждой шестнадцатеричной цифры числа определим количество замкнутых областей в ней. Так, цифры 0 или 9 имеют одну замкнутую область, а цифры 8 или B–две замкнутых области. Посчитаем общее количество замкнутых областей числа. Выбросим из последовательности числа, в которых более 6 замкнутых областей. В полученной последовательности числа занумеруем, начиная с 1.
Найдите остаток от деления на 10001 суммы произведений всех чисел последовательности на номер числа в последовательности.
Реализовал её с помощью нескольких программ. Первая выписывает все числа в шестнадцатеричном виде в данном диапазоне. Вторая отбирает подходящие по условию. Третья считает результат.
1)
C++
1
2
3
4
5
6
7
8
9
#include <fstream>
using namespace std;
fstream cin("8in.txt");
ofstream cout("8out.txt");
int main(){
    for(int i=268435456;i<=1342177279;i++){
        cout<<hex<<i<<' ';
    }
}
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
33
#include <fstream>
#include <string>
using namespace std;
fstream cin("8out.txt");
ofstream cout("8.1.out.txt");
 
bool check(string m){
    int count=0;
    for(int i=0;i<m.size();i++){
        if(m[i]=='0' or m[i]=='4' or m[i]=='6' 
        or m[i]=='9' or m[i]=='a' or m[i]=='d')
            count++;
        if(m[i]=='8' or m[i]=='b')
            count+=2;
    }
    
    if(count<=6)
        return true;
    else 
        return false;
}
int main(){
    string s;
    long long n=0;
    for(int i=0;i<1073741823;i++){
        cin>>s;
        if(check(s)){
            n++;
            cout<<s<<' ';
            }
    }
    
}
3)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
using namespace std;
fstream cin("8.1.out.txt");
ofstream cout("8.2.out.txt");
int main(){
    long long ans=0;
 
    for(int i=1;i<=1073741823;i++){
        int m;
        cin>>hex>>m;
        ans+=(i*m)%10001;
    }
    cout<<ans%10001;
    
}
Все работает. Но у меня есть несколько весомых сомнений. Во-первых, во второй программе я вставлял счетчик, чтобы он выдал сколько всего таких чисел. Так вот он говорит, что 1073741823, но это число всех чисел в данном диапазоне. Однако, вес файла с итогом первой и второй программы разнится в 9 раз. Во-вторых, не уверен, что правильно реализовал 3 программу. Укажите на мои ошибки, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 19:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замкнутые области в шестнадцатеричных числах (C++):

Калькулятор шестнадцатеричных чисел - C++
Помогите пожалуйста!как в си/с++ сделать калькулятор для арифметических действий над шестнадцатеричными числами,а также с операциями &quot;не...

Сравнение шестнадцатеричных форм - C++
Такая задача:считать из потока 2-байтовое число, перевести в 16-ричную систему счисления и сравнить с заданным 16-ричным числом. помогите...

Как создать массив шестнадцатеричных чисел? - C++
int arr = {92, 18, D5, 4F, 22, 61, 3F, 2B, 59, 3B, CF, FC, 4C}; Очень много ошибок error C2065: D5: необъявленный идентификатор ...

Функция, которая преобразует строку шестнадцатеричных цифр - C++
Ребят просьба помочь хоть с какой нибудь задачей. Задача 1. Написать и протестировать функцию , которая преобразует строку...

шестнадцатеричных числа. Определить наибольший общий делитель - C++
Помогите сделать задание, завтра сдавать... Заданы два длинных неотрицательных шестнадцатеричных числа. Напишите программу, определяющую...

Таблица двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел - C++
Напишите программу, которая печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел в диапазоне от 1 до...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 19:17
Привет! Вот еще темы с ответами:

WxString(4 байта) некорректное отображение значения шестнадцатеричных значений - C++
При отображении считанного MAC адреса в шестнадцатиричном виде(да и в десятичном тоже), в поле wxStaticText отображаются лишние символы,...

Написать и протестировать функцию, которая преобразует строку шестнадцатеричных цифр в эквивалентное ей целое десятичное число - C++
Написать и протестировать функцию, которая преобразует строку шестнадцатеричных цифр в эквивалентное ей целое десятичное число. ПРОБЛЕМА В...

Написать программу, которая печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел в диапазоне от 1 до 256 - C++
Нужно написать программу, которая печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел в диапазоне от...

О простых числах! - C++
Составить программу для проверки утверждения «Результатами вычислений по формуле x ^ 2 + x +17 при 0 ≤ x ≤ 15 являются простые числа ». ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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