5 / 54 / 21
Регистрация: 12.03.2017
Сообщений: 515
1

Правильное восьмеричное число

25.11.2017, 17:49. Показов 7358. Ответов 7
Метки нет (Все метки)

Напишите программу, которая определяет правильность записи целого числа в восьмеричной системе счисления.

Формат входных данных

На вход программы поступает символьная строка (длина строки не больше 300 символов).

Формат выходных данных

Программа должна вывести ответ 'YES', если строка представляет собой правильную запись целого числа в восьмеричной системе счисления, и 'NO', если запись ошибочна.

Примеры

входные данные выходные данные
12345
YES
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2017, 17:49
Ответы с готовыми решениями:

Строка восьмеричное число
Напишите программу, которая определяет, явлется ли введенная с клавиатуры строка восьмеричным...

Перевести восьмеричное число в двоичное
имееться задача перевести восьмеричное число в двоичное с использованиям структуры с битовыми...

Как задать символ \ , за которым следует трёхразрядное восьмеричное число
Задание выглядит следующим образом Построить минимальный детерминиро¬ванный конечный...

Перевод в восьмеричное
Есть функция - получаем строку(десятичное число) и возвращаем строку(восьмеричное представление)...

7
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
25.11.2017, 18:58 2
Строка, всего-навсего, не должна содержать цифр 8 и 9.
(или, если кроме цифр могут быть буквы, то проверяем на 0,1,2,3,4,5,6,7)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using namespace std;
int main() 
{
    string s;
    cin >> s;
 
    string res = "YES";
    for (int i = 0; i < s.length(); i++)
        if (int(s[i]) < 48 || s[i] > 55)
        {
            res = "NO";
            break;
        }
    cout << res;
return 0;
}
0
3362 / 1918 / 368
Регистрация: 09.09.2017
Сообщений: 7,835
25.11.2017, 20:09 3
Цитата Сообщение от LVV Посмотреть сообщение
if (int(s[i]) < 48 || s[i] > 55)
Это в целях обфускации? И зачем преобразование в int?
C
1
if(s[i]<'0' || s[i]>'7')
1
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
26.11.2017, 05:29 4
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
if(s[i]<'0' || s[i]>'7')
Да... Спасибо.
Что-то я перемудрил немножко.
Хотя идея была сравнивать ASCII коды (потому и int, хотя работает и без него).
Согласитесь, что но новичку всё же понятнее тот факт, что 97<98, чем 'a'<'b'.
0
3362 / 1918 / 368
Регистрация: 09.09.2017
Сообщений: 7,835
26.11.2017, 12:03 5
Цитата Сообщение от LVV Посмотреть сообщение
Согласитесь, что но новичку всё же понятнее тот факт, что 97<98, чем 'a'<'b'.
Категорически не согласен! Что такое 97 и 98? Просто какие-то числа. А вот 'a', 'b' уже видно что буквы.
0
226 / 109 / 34
Регистрация: 25.11.2017
Сообщений: 380
26.11.2017, 12:21 6
Вообще, если говорить о реальности, то из записи надо успешно вычищать пробелы и по стандартам С/C++ начинаться запись восьмеричного числа должна начинаться со '\'. Тогда написанное выше преобразуется в.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
int main() 
{
    string s;
    int sl = 0;
    cin >> s;
 
    string res = "YES";
    for (int i = 0; i < s.length(); i++)
    {
        if (s[i] == ' ' && sl == 0) continue; -- чистим пробелы перед записью числа
        if (s[i] == '\\' && sl == 0) { sl = 1; continue; } -- срабатывает только на 1-й слэш
        if (s[i] < '0' || s[i] > '7')
        {
            res = "NO";
            break;
        }
    }
    cout << res;
return 0;
}
0
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
26.11.2017, 13:24 7
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Категорически не согласен! Что такое 97 и 98? Просто какие-то числа. А вот 'a', 'b' уже видно что буквы.
Ну, это как сказать.
Новичок должен понимать, что сравниваются в итоге не символы (буквы), а их коды!
Иначе как Вы ему объясните, что, например, "Вася" меньше "Пети"
0
1481 / 945 / 811
Регистрация: 30.04.2016
Сообщений: 3,304
26.11.2017, 13:31 8
Pavlin234, Извините. Удалил свой пост... Думал, что число не длинная строка...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2017, 13:31

Правильное swprintf, правильное wprintf ?
Вродеж бы по ,,инструкции,,.... ..... wchar_t str = L&quot;tanya&quot;; // обозначает, что строка не...

Составить программу, которая переводит восьмеричное число А в десятичное число
Составить программу, которая переводит восьмеричное число А в десятичное число. Вывести...

Восьмеричное число
Вот задание: Автомат получает на вход два двузначных восьмеричных числа. По этим числам строится...

Класс восьмеричное число
Прошу помощи, не получается написать программу на C# Создать класс для работы с восьмеричным...


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

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

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