0 / 0 / 1
Регистрация: 25.11.2015
Сообщений: 11
1

Сложение первых трёх цифр в шестизначном числе

27.11.2015, 08:13. Показов 44280. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Наткнулся на задачку, не могу сделать, помогите пожалуйста: пользователь вводит с клавиатуры целое шестизначное число. Написать программу, которая определяет, является ли введенное число – счастливым (Счастливым считается шестизначное число, у которого сумма первых 3 цифр равна сумме вторых трех цифр). Если пользователь ввел не шестизначное число – сообщение об ошибке.

Добавлено через 2 минуты
Вот на чём я остановился :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "rus");
    int x, k, s = 0;
    cout << "Введите любое шестизначное число: \n";
    cin >> x;
    if (99999 > x || x > 999999)
        cout << "Не корректный ввод числа! \n";
    else
    {
 
    }
    system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2015, 08:13
Ответы с готовыми решениями:

Найти количество четных и нечетных цифр в целом положительном шестизначном числе
С++ для меня в новинку..и где тут что не так понять не могу.. подскажите, пожалуйста Задача звучит...

Написать программу: сумма первых трех цифр числа равна сумме его последних трех цифр.
Получить все шестизначные счастливые номера. Счастливым называют такое шестизначное число, для...

Получить все шестизначные счастливые номера (где сумма первых трех цифр равна сумме последних трех цифр)
Получить все шестизначные счастливые номера. Счастливым называют такое шестизначное число, в...

Напечатать номера счастливых билетов(сумма первых трех цифр, равна сумме вторых трех цифр 6-ти значного числа)
Напечатать номера счастливых билетов(сумма первых трех цифр, равна сумме вторых трех цифр 6-ти...

21
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
27.11.2015, 10:10 2
Цитата Сообщение от Zetroxx Посмотреть сообщение
if (99999 > x || x > 999999)
Эээ... Вы хорошо подумали? Если х меньше 999999 ИЛИ больше 999999 ?.. То есть 999998 - не шестизначное число?
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
27.11.2015, 10:17 3
C++
1
2
3
4
5
for(i = a1 = a2 = 0; x; x/10, i++) {
  c = x%10;
  if (i<3) a1 += c;
  else      a2 += c;
}
1
0 / 0 / 1
Регистрация: 25.11.2015
Сообщений: 11
27.11.2015, 10:17  [ТС] 4
Эээ... Вы хорошо подумали? Если х меньше 999999 ИЛИ больше 999999 ?.. То есть 999998 - не шестизначное число?
Посчитайте кол-во цифр в числе которое я написал и Вы.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
27.11.2015, 10:22 5
Цитата Сообщение от Zetroxx Посмотреть сообщение
Посчитайте кол-во цифр в числе которое я написал и Вы.
Не поверите - шесть и там и там.
9 - 1
9 - 2
9 - 3
9 - 4
9 - 5
9 - 6
А теперь моё
9 - 1
9 - 2
9 - 3
9 - 4
9 - 5
8 - 6
Тоже шесть! И?
0
0 / 0 / 1
Регистрация: 25.11.2015
Сообщений: 11
27.11.2015, 10:30  [ТС] 6
Цитата Сообщение от Тамика Посмотреть сообщение
Не поверите - шесть и там и там.
9 - 1
9 - 2
9 - 3
9 - 4
9 - 5
9 - 6
А теперь моё
9 - 1
9 - 2
9 - 3
9 - 4
9 - 5
8 - 6
Тоже шесть! И?
if (99999 > x || x > 999999)
Считайте ещё раз.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
27.11.2015, 10:32 7
Zetroxx, Посмотрите, какие числа удовлетворяют неравенству
Цитата Сообщение от Zetroxx Посмотреть сообщение
if (99999 > x || x > 999999)
И не упрямьтесь.
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.11.2015, 10:41 8
Тамика, в первом - 5, во втором - 6, все правильно, просто из-за большого количества 9 глаза разбегаются.

Добавлено через 7 минут
Байт, это Вы и Тамика упрямые, все у него верно.
2
0 / 0 / 1
Регистрация: 25.11.2015
Сообщений: 11
27.11.2015, 10:55  [ТС] 9
Можете пояснить, что Вы сделали, чтобы я разобрался. И как мне записать всё это.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
27.11.2015, 10:57 10
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Байт, это Вы и Тамика упрямые, все у него верно.
Тьфу ты (это я себе!) Видимо, попал под очарование... Или не проснулся еще...
Да. Это проверка на неправильность ввода.
И если написать x<=99999, то у ТС все правильно
1
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.11.2015, 11:02 11
Zetroxx, у вас есть шестизначное число. В цикле в переменную c записывается последняя цифра этого числа, а само число нацело делится на 10, чтобы на следующей итерации последней оказалась предпоследняя и т.д. Затем эта цифра складывается с одной из двух переменных в зависимости от условия. Т.е. переменой a1 присваивается сумма последних трех цифр числа, а переменной a2 - сумма первых трех. Вам остается лишь сравнить a1 и a2.
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
27.11.2015, 11:07 12
Цитата Сообщение от Zetroxx Посмотреть сообщение
что Вы сделали,
На будущее. Если в теме участвуют больше 2-х человек, следует указывать, к кому именно вы обращаетесь (щелкнуть по нику). Но в данном случае отвечать кроме меня некому
Напишу чуть-чуть по другому
C++
1
2
3
4
5
6
7
8
int a1=0, a2=0; // a1 накапливает последние 3 цифры, a2 - первые 3
for(int i = 0; x; i++) {
  int c = x%10;  // Очередная цифра (с конца)
  if (i<3) a1 += c;  // цифра из последней тройки
  else      a2 += c;  // из 1-й тройки
  x = x/10; 
}
if (a1==a2) cout << "Happy!";
1
Тамика
27.11.2015, 11:10
  #13

Не по теме:

Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Байт, это Вы и Тамика упрямые, все у него верно.
Я упрямая, да... И сонная, и слепая :D
Zetroxx, прошу прощения.:)

0
0 / 0 / 1
Регистрация: 25.11.2015
Сообщений: 11
27.11.2015, 11:35  [ТС] 14
Байт, Спасибо, с этим разобрался. Вводишь число, всё работает, вот только если вводишь не 6-ти значное число сначала пишет как и должно "Не корректный ввод числа!", а потом выводит какое число (счастливое или нет).
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
27.11.2015, 12:08 15
Цитата Сообщение от Zetroxx Посмотреть сообщение
только если
покажи свой полный код.
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.11.2015, 12:10 16
Zetroxx, цикл и вывод результата должны находиться в блоке else.
0
0 / 0 / 1
Регистрация: 25.11.2015
Сообщений: 11
27.11.2015, 12:14  [ТС] 17
Байт,
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
#include <iostream>
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "rus");
    int x, c, i, a1=0, a2=0;
    cout << "Введите любое шестизначное число: \n";
    cin >> x;
    if (99999 >= x || x > 999999)
        cout << "Не корректный ввод числа! \n";
    else
    {
        
        for (int i = 0; x; i++)
        {
            int c = x % 10;  
            if (i<3) a1 += c; 
            else      a2 += c; 
            x = x / 10;
        }
    }
    if (a1 == a2)
        cout << "Поздравляем у Вас счастливый номер!!!";
    else 
    {
        (a1 != a2);
        cout << "Увы Ваш номер не счастливый, попробуйте в следующий раз.";
    }
    system("pause");
}
0
2 / 2 / 0
Регистрация: 07.06.2016
Сообщений: 63
09.06.2016, 12:08 18
Вот решение этой задачи без использования циклов, потому как иногда ее задают до их изучения. при этом используется только if esle
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
#include <iostream>
using namespace std;
void main ()
{
    long a, b, a1, a2, a3, a4, a5, a6; // a - шестизначное число, а1-а6 - цыфри числа, которые получим путем деления с остачей
    cout << "Enter a six-digit number: ";
    cin >> a;
    b = a;
    a1 = a/100000; b = a%100000;
    a2 = b/10000; b %= 10000;
    a3 = b/1000; b %= 1000;
    a4 = b/100; b %= 100;
    a5 = b/10; b %= 10;
    a6 = b;
    if (99999 >= a || a > 999999)
        cout << "Ouch! You entered uncorrect number!" << endl;
    else 
 
        if ((a1+a2+a3)==(a4+a5+a6))
            cout << "You entered lucky number! Congratulations!" << endl;
        else
        {
            ((a1+a2+a3)!=(a4+a5+a6));
            cout << "You have a bad day. Sorry..." << endl;
        }
        
 
    system ("pause");
}
1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 1
23.12.2016, 10:29 19
Техник228, спасибо Вам! Как раз то, что нужно было
0
0 / 0 / 0
Регистрация: 26.05.2019
Сообщений: 1
26.05.2019, 11:14 20
Техник228, мне нужна помощь в объяснении вашего кода который вы написали с шестизначным числом

Добавлено через 2 минуты
Техник228, мне нужна ваша помощь в объяснении вашего кода про шестизначное число, где идёт сравнение первых 3х чисел со вторыми тремя числами и должно быть счастливым число
0
26.05.2019, 11:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2019, 11:14
Помогаю со студенческими работами здесь

Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы первых трёх цифр и последних трёх цифр номера билета
3. Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы первых трёх цифр и последних...

Определить, равна ли сумма первых трех цифр, сумме последних трех цифр
С клавиатуры вводится натуральное шестизначное число.Проверить: а) равна ли сумма первых трех...

Счастливым называется семизначное число, у которого сумма его первых трех цифр равна сумме его трех последних цифр
Семизначное число называется &quot;Счастливым&quot;, если у него сумма первых трех цифр равна сумме последних...

Счастливым называется шестизначное число, у которого сумма его первых трех цифр равна сумме его трех последних цифр
Опледелить является ли заданное шестизначное число счастливым? &quot;Счастливым называется...


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

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

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