Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2019, 17:09   #1
losador
Новичок
Джуниор
 
Регистрация: 24.10.2019
Сообщений: 1
Восклицание Помогите решить задачу

Дали мне школьную задачку с условием:
Мальчик Никита купил билет для поездки в
общественном транспорте, посмотрел на
номер билета, который состоит из 6 цифр, и
понял, что билет не является счастливым.
Счастливым считается такой билет, у
которого сумма первых трёх цифр равна
сумме последних трёх цифр. Например,
билет 123051 является счастливым, потому что 1 +2+3=0+5+1.
Помогите Никите определить номер ближайшего счастливого билета,
который находится к купленному им билету.


Так вот, не могу я догадаться до решения основной части, смог только разбить число на цифры, вот код:
Код:
#include <iostream>
#include<clocale>
#include<cmath>
using namespace std;

int a;


int main() {
	setlocale(LC_CTYPE, "Russian");
	cout << "введите 6-ти значное число"<<endl;
	cin >> a;
	int b, c, d, e, r, t, f, v, s, k, h, z, x, j, sum1, sum2;
	
	
		b = a / 100000; //1 b
		c = a % 100000;
		d = c / 10000;  //2 d
		e = c % 10000;   
		r = e / 1000;   //3 r
		t = e % 1000;
		f = t / 100;    //4 f
		v = t % 100;
		s = v / 10;     //5 s
		k = v % 10;     //6 k
	
	

	cout << b <<" " << d << " " << r << " " << f << " " << s << " " << k << endl;

	sum1 = b + d + r;
	sum2 = f + s + k;

	cout << sum1 << "   " << sum2 << endl;


	if (sum1 == sum2){
		cout << a << endl;

	}
	else
	{
		h = sum1 - sum2;

		
	}
	


   return 1;
}
Помогите пожалуйста с дальнейшим решением!
тест для проверки
купленный билет
125112
ближайший счастливый билет
125116


Кто не понял, нужно подогнать цифры с купленного билета под ближайший счастливый

Последний раз редактировалось losador; 24.10.2019 в 17:20.
losador вне форума Ответить с цитированием
Старый 25.10.2019, 09:04   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
do{
		b = a / 100000; //1 b
		c = a % 100000;
		d = c / 10000;  //2 d
		e = c % 10000;   
		r = e / 1000;   //3 r
		t = e % 1000;
		f = t / 100;    //4 f
		v = t % 100;
		s = v / 10;     //5 s
		k = v % 10;     //6 k
a++;
while(b + d + r!=f + s + k);
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 25.10.2019, 09:14   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от losador Посмотреть сообщение
тест для проверки
купленный билет
125112
ближайший счастливый билет
125116
а вот тест не очень, тест можно было более полезный сделать:
Код:
купленный билет
125110
и сразу стало понятно, что такое
Цитата:
Сообщение от losador Посмотреть сообщение
номер ближайшего счастливого билета,
это 125107 или 125116 ?

Ну или в условиях оговорить, что нужен ближайший СЛЕДУЮЩИЙ счастливый номер.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу,пожалуйста!!!вторую часть не могу решить. Родион Афанасьев Паскаль, Turbo Pascal, PascalABC.NET 1 03.03.2018 19:44
помогите решить задачу с++ anton651 C++ Builder 1 29.09.2015 18:29
Помогите решить задачу РУСЛАН__ Помощь студентам 7 11.08.2015 11:52
Помогите решить задачу в VBA bobvova Помощь студентам 1 07.06.2014 18:33