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

задача непонятная - C++

Восстановить пароль Регистрация
 
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
02.08.2012, 20:42     задача непонятная #1
Объясните, пожалуйста, что нужно сделать, а то формулу не могу вывести, т.е. что нужно делать и с какой последовательностью. Было бы здорово если объяснение с примером )
Миниатюры
задача непонятная  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2012, 20:42     задача непонятная
Посмотрите здесь:

C++ непонятная ошибка
Непонятная ошибка C++
Непонятная ошибка C++
Непонятная формула C++
непонятная ошибка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
02.08.2012, 20:48     задача непонятная #2
delete
AlieNear
 Аватар для AlieNear
24 / 0 / 2
Регистрация: 29.05.2012
Сообщений: 4
02.08.2012, 20:52     задача непонятная #3
Привет. Суть такова, тебе дается число вида X_1X_2X_3X_4, где X_i-цифра. Что нужно сделать - сформировать число вида ((X_3+7)%10)((X_4+7)%10)((X_1+7)%10)((X_2+7)%10).
Не очень понято, чего именно хотят - остатка от деления (т.е. результат %), или же результат целочисленного деления (как написано в условии - /).
Вся трудность задачи сводится к одному - выделить 4 цифры из числа. Что с ними делать написано выше.

Добавлено через 2 минуты
Цитата Сообщение от DaskOFF Посмотреть сообщение
(1+2+3+4+7)
Судя по тексту задачи, надо каждую цифру отдельно посчитать.
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
02.08.2012, 20:53     задача непонятная #4
Цитата Сообщение от AlieNear Посмотреть сообщение
Добавлено через 2 минуты

Судя по тексту задачи, надо каждую цифру отдельно посчитать.
да, я не так понял
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
02.08.2012, 20:56     задача непонятная #5
Цитата Сообщение от AlieNear Посмотреть сообщение
Не очень понято, чего именно хотят - остатка от деления (т.е. результат %), или же результат целочисленного деления
Наверно все таки остатка от деления. Потому что любая цифра 0-9 при целочисленном делении на 10 даст 0.
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
02.08.2012, 20:59  [ТС]     задача непонятная #6
в вашем примере (1+2+3+4+7)/10 = 1,7, как можно привести его к вашему виду?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 21:02     задача непонятная #7
А по моему, так. 1234 шифруется как: ((1 + 7) % 10) ((2 + 7) % 10) ((3 + 7) % 10) ((4 + 7) % 10). Результат: 8901. Меняем цифры: 0189
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
02.08.2012, 21:04  [ТС]     задача непонятная #8
похоже это то что нужно, спасибо )
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 21:19     задача непонятная #9
Цитата Сообщение от Kuanish Посмотреть сообщение
похоже это то что нужно, спасибо )
Похоже, а может и неправильно, хотя, скорее всего, правильно.

Добавлено через 13 минут
А расшифровка, например, так: меняем местами, получаем 8901. Если цифра меньше или равна 7, то вычитаем из неё 7, если больше, то прибавляем 10 и вычитаем 7. (8 - 7) (9 - 7) (0 + 10 - 7) (1 + 10 - 7). Результат - 1234.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
02.08.2012, 21:32     задача непонятная #10
Цитата Сообщение от alsav22 Посмотреть сообщение
А расшифровка, например, так
Расшифровка получается как бы в обратном направлении?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
02.08.2012, 21:41     задача непонятная #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Если цифра меньше или равна 7, то вычитаем из неё 7, если больше, то прибавляем 10 и вычитаем 7.
а теперь
Цитата Сообщение от alsav22 Посмотреть сообщение
(8 - 7) (9 - 7) (0 + 10 - 7) (1 + 10 - 7).
описание и пример как бы не совпадают
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 21:45     задача непонятная #12
Цитата Сообщение от ValeryS Посмотреть сообщение
описание и пример как бы не совпадают
В чём не совпадают? 1234. (8 - 7) это первая цифра; (9 - 7) это вторая; (0 + 10 - 7) это третья; (1 + 10 - 7) это четвёртая.
AlieNear
 Аватар для AlieNear
24 / 0 / 2
Регистрация: 29.05.2012
Сообщений: 4
02.08.2012, 21:47     задача непонятная #13
Если цифра БОЛЬШЕ или равна 7, то вычитаем из неё 7, если МЕНЬШЕ, то прибавляем 10 и вычитаем 7.
Должно быть так, не критическая опечатка, легко понять, если просто вдуматься.

PS: если меньше, можно просто +3
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 21:50     задача непонятная #14
Цитата Сообщение от ValeryS Посмотреть сообщение
Сообщение от alsav22
Если цифра меньше или равна 7, то вычитаем из неё 7, если больше, то прибавляем 10 и вычитаем 7.
Виноват, описка. Наоборот. Меньше заменить на больше.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
02.08.2012, 21:53     задача непонятная #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Виноват, описка.
Я так и понял
просто обратил внимание чтоб не стали тупо копировать
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 21:55     задача непонятная #16
Цитата Сообщение от AlieNear Посмотреть сообщение
если меньше, можно просто +3
Правильно.
Kvasik
Сообщений: n/a
03.08.2012, 14:06     задача непонятная #17
Писал чисто с математической точки зрения на скору руку
#include <iostream>
#include <stdlib.h>
#include <Windows.h>
using namespace std;

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

cout << "Введите число, уважаемый: ";
char number[5];
cin >> number;

int number1 = atoi(number); // из char в int
int a, b, c, d; // каноническое разложение числа

double x1 = number1 / 1000;
int y1 = (int)x1;
a = y1;
a = (a + 7) % 10;

double x2 = number1 / 100 - y1 * 10;
int y2 = (int)x2;
b = y2;
b = (b + 7) % 10;

double x3 = number1 / 10 - (y1 * 100 + y2 * 10);
int y3 = (int)x3;
c = y3;
c = (c + 7) % 10;

d = number1 % 10;
d = (d + 7) % 10;

cout << "Ваше число полсе шифрования: " << c << d << a << b << endl;

system("pause");
}

Добавлено через 39 минут
извиняюсь, написал бред с ненужным массивом
#include <iostream>
#include <stdlib.h>
#include <Windows.h>
using namespace std;

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

cout << "Введите число, уважаемый: ";
int number;
cin >> number;

int a, b, c, d; // каноническое разложение числа

double x1 = number / 1000;
int y1 = (int)x1;
a = y1;
a = (a + 7) % 10;

double x2 = number / 100 - y1 * 10;
int y2 = (int)x2;
b = y2;
b = (b + 7) % 10;

double x3 = number / 10 - (y1 * 100 + y2 * 10);
int y3 = (int)x3;
c = y3;
c = (c + 7) % 10;

d = number % 10;
d = (d + 7) % 10;

cout << "Ваше число после шифрования: " << c << d << a << b << endl;

system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2012, 17:12     задача непонятная
Еще ссылки по теме:

Непонятная задача на массивы из книги Герберта Шилдта C++
C++ непонятная ошибка
Транспортная задача, непонятная ошибка в коде! C++

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

Или воспользуйтесь поиском по форуму:
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
03.08.2012, 17:12  [ТС]     задача непонятная #18
Цитата Сообщение от alsav22 Посмотреть сообщение
А расшифровка, например, так
спасибо )

Добавлено через 3 минуты
а я все думал, как же можно перенести операцию "%" на противоположную сторону, чтобы получить x1 из a1 = (x1 + 7) % 10 )))

Добавлено через 19 минут
Можно ли вот это:

C++
1
2
3
4
5
6
7
8
9
10
11
12
    if (a1 >= 7)
        x1 = a1 - 7;
    else x1 = a1 +3;
    if (a2 >= 7)
        x2 = a2 - 7;
    else x2 = a2 +3;
    if (a3 >= 7)
        x3 = a3 - 7;
    else x3 = a3 +3;
    if (a4 >= 7)
        x4 = a4 - 7;
    else x4 = a4 +3;
сделать по компактнее? например в виде цикла?
Yandex
Объявления
03.08.2012, 17:12     задача непонятная
Ответ Создать тему
Опции темы

Текущее время: 07:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru