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

Проверить какая из двух частей числа любой разрядности больше

25.06.2016, 18:53. Показов 1473. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь господа с этой дилеммой, проблема с нахождением этих цифр, в очередной раз. Вот что у меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int chislo,razryad=0;
 
    cout << "Введите число: ";
    cin >> chislo;
 
    while (chislo>0)
    {
        razryad++;
        chislo = chislo / 10;
 
    }
    cout << razryad << "\n";
 
 
    int chast_1 = 0, chast_2 = 0;
 
    for (int i = 0; i < razryad/2; i++)
    {   
        chislo = chislo % 10;
        cout << chislo; 
    }
Буду благодарен если будет за комментирована последовательность действий. Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2016, 18:53
Ответы с готовыми решениями:

Проверить сумма какой из половин числа и какая из двух частей числа разрядности больше
Доброе время суток всем!!! Интересная задачка, на которую не могу найти ответ!!! Объясните как это происходит....+ сделать циклом for ...

Какая из двух частей числа разрядности больше
Доброе время суток, ребята, подскажите как решить задачу! Проверить какая из двух частей числа любой разрядности больше.

Проверить сумма какой из половин числа ЛЮБОЙ разрядности больше
День добрый, господа знатоки:) Возникли проблемы с переменными, а точнее с их математическими действиями, запутался в край. Идею данной...

16
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
25.06.2016, 19:12
сначала делаете
C++
1
chislo = chislo / 10;
а потом на той же переменной где значение 0
C++
1
chislo = chislo % 10;
Добавлено через 6 минут
если части числа нужно равнять как сумму разрядов то нужно пощитать от 0 до razryad/2 и от razryad/2 до razryad
1
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
25.06.2016, 19:25
Sickle,
Немного непонятно.
Для числа 1234567 части 123 и 567? Или 1234 и 4567?
Для первого варианта:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int number, first, last;
cout << "Enter number (2 and more digits): ";
cin >> number;
int count = log10(number) + 1;
first = number / pow(10, (count + 1) / 2);
last = number % (int)pow(10, count / 2);
cout << "number of digits " << count << endl;
cout << "first part " << first << endl;
cout << "last part " << last << endl;
if (first == last)
    cout << "equal parts" << endl;
else
    cout << ((first > last) ? "first larger" : "last larger") << endl;
1
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 19:53  [ТС]
Вроде понятно, но не работает
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
int chislo,razryad=0;
 
    cout << "Введите число: ";
    cin >> chislo;
 
    while (chislo>0)
    {
        razryad++;
        chislo = chislo / 10;
 
    }
    cout << razryad << "\n";
 
    int chast_1 = 0, chast_2 = 0;
 
    for (int i = 0; i > razryad/2;)
    {   
        chast_1++;
        chislo = chislo % 10; 
    }
    cout << chast_1 << "\n";
 
    for (; razryad / 2 > razryad;)
    {
        chast_2++;
        chislo = chislo % 10;
    }
    cout << chast_2 << "\n";
Добавлено через 2 минуты

Добавлено через 1 минуту
Спасибо за ответ, но к сожалению такие моменты как
C++
1
log, pow
еще не отрабатывали(
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
25.06.2016, 19:53
вы переменную число перезатираете то есть у вас выходит вы щитаете число разрядов. работаете с переменной chislo а потом хотите пощитать сумму и опять берете ту же переменную chislo но она содержит уже не исходное значение а 0. Зделайте дубликат и юзайте его. перед каждим циклом скопировали из дубликата значение с chislo и вычислели чего нужно
1
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 20:05  [ТС]
пишет переопределение переменной chislo
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
int chislo,razryad=0;
 
    cout << "Введите число: ";
    cin >> chislo;
 
    while (chislo>0)
    {
        razryad++;
        chislo = chislo / 10;
 
    }
    cout << razryad << "\n";
 
    
    int chast_1 = 0;
    int chislo;
    for (int i = 0; i < razryad/2;)
    {   
        chast_1++;
        chislo = chislo / 10;
        chislo = chislo % 10;
 
        cout << chast_1 << "\n";
    }
    
    
    int chislo, chast_2 = 0;
    for (; razryad / 2 < razryad;)
    {
        chast_2++;
        chislo = chislo / 10;
        chislo = chislo % 10;
 
        cout << chast_2 << "\n";
    }
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
25.06.2016, 20:09
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
    int chislo,razryad=0, tmpChislo;
    cout << "Введите число: ";
    cin >> chislo;
    tmpChislo = chislo;
    while (tmpChislo>0)
    {
        ++razryad;
        tmpChislo = tmpChislo / 10;
    }
    cout << razryad << "\n";
 
    int chast_1 = 0;
    tmpChislo = chislo;
    for (int i = 0; i < razryad/2;)
    {   
        chast_1++;
        tmpChislo = tmpChislo / 10;
        tmpChislo = tmpChislo % 10;
        cout << chast_1 << "\n";
    }
    
    
    int chast_2 = 0;
    tmpChislo = chislo;
    for (; razryad / 2 < razryad;)
    {
        chast_2++;
        tmpChislo = tmpChislo / 10;
        tmpChislo = tmpChislo % 10;
        cout << chast_2 << "\n";
    }
Добавлено через 25 секунд
вот примерно вот так криво
0
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 20:21  [ТС]
код не рабочий
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
25.06.2016, 20:40
сформулируте на основе чего должны сравниваться части числа? сумма разрядов двух частей?
0
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 20:43  [ТС]
ну да, то есть допустим число 1234 12 и 34, препод сказала что хотя бы четные сделайте
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
25.06.2016, 20:54
Sickle, а число 12345 на какие два числа делить? на 123 и 45 или на 12 345 ?
Четко задание скажите.
0
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 20:59  [ТС]
кратные например 1234, 123456, 12345678
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
25.06.2016, 21:00
Sickle, число цифр кратно двум?
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
25.06.2016, 21:03
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
#include <iostream>
#include <cmath>
using namespace std;
 
int getNrOfSigns(int num)
{
    int nrOfSigns = 0;
    while (num > 0)
    {
        ++nrOfSigns;
        num = num / 10;
    }
    return nrOfSigns;
}
 
int getSignsSum(int num, int nrOfSigns, int adapt)
{
    int sum = 0;
    num /= pow(10,adapt);
    for (int i = 0; i < nrOfSigns; ++i)
    {
        sum += num % 10;
        num /= 10;
    }
    return sum;
}
 
int main() 
{
    int chislo;
    cout << "Введите число: ";
    cin >> chislo;
    int razryad = getNrOfSigns(chislo);
    cout << razryad << "\n";
 
    int chast_1 = getSignsSum(chislo, razryad / 2, razryad & 1 == 1 ? razryad / 2 + 1 : razryad / 2);
    int chast_2 = getSignsSum(chislo, razryad / 2, 0);
    cout << chast_1 << endl;
    cout << chast_2 << endl;
    if (chast_1 > chast_2)
        cout << "First part is bigger" << endl;
    else
        cout << "Second part is bigger" << endl;
    return 0;
}
микс с вашим кодом. мозг не врубал писал что бы работало
1
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 21:06  [ТС]
ну да
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
25.06.2016, 21:51
Sickle, а такой вариант препод примет?
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 number;
    cin >> number;
    cout <<
        (
        stoull(string(number.cbegin(), number.cbegin() + number.size() / 2))
        >
        stoull(string(number.cbegin() + number.size() / 2, number.cend())) ?
        "1st part is greater" : "2nd part is greater"
        ) << endl;
    system("pause");
    return 0;
}
Правда, я не учел ситуацию, если пользователь ввел 1212, но тут, я думаю, ты доделаешь сам
1
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 17
25.06.2016, 22:32  [ТС]
Оу, пожалуй это перебор, мне бы на основе циклов вывести ответ, массивы еще куда не шло, ну вот по принципу моего кода, не рабочего правда=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2016, 22:32
Помогаю со студенческими работами здесь

Циклы: проверить сумма какой из половин числа (любой разрядности) больше
Ребята помогите, делал два задания, в итоге их надо сделать в ЦИКЛЕ любого типа!!! Сегодня надо сдать!!!((( №1.Проверить сумма какой из...

Используя цикл for, проверить, сумма какой из половин числа любой разрядности больше
Доброе время суток, не могу разобраться с задачей!!! Честно, не имею представления, как ее делать!!! Проверить сумма какой из...

Проверить сумма какой из половин числа разрядности больше
Проверить сумма какой из половин числа любой разрядности больше! Объясните, как это сделать комментируя пожалуйста! Я новичок,...

Дано четырехзначное натуральное число. Выяснить какая из двух его частей больше
Дано четырехзначное натуральное число. Выяснить какая из двух его частей больше.

Найти, какая из частей числа - левая или правая - больше (оператор for)
5. Найти какая из частей числа - левая или правая больше. Т.е. 1265 - получаем два числа 12 и 65. Правая часть больше. Если в числе...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru