С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.12.2019
Сообщений: 1
1

Алгоритм Луна

09.12.2019, 14:33. Показов 5227. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
enum CardType
{
  type_master_card,
  type_visa,
  type_american_express,
  type_other
};
 
static char* EmitentNames[] = {"Master Card", "VISA", "American Express", "Other"};
 
int GetFirstTwoDigits(const int* const cardNumber)
{
  return (cardNumber[0] * 10 + cardNumber[1]);
}
 
enum CardType GetCardType(const int* const cardNumber)
{
  enum CardType type;
 
  int firstTwoDigits = GetFirstTwoDigits(cardNumber);
 
  if ((firstTwoDigits >= 51) && (firstTwoDigits <= 55))       type = type_master_card;
  else if (firstTwoDigits / 10 == 4)                          type = type_visa;
  else if ((firstTwoDigits == 34) || (firstTwoDigits == 37))  type = type_american_express;
  else                                                        type = type_other;
  return type;
}
 
int Luhn(const int* const cardNumber, const int cardNumberLength)
{
  int validationFlag = 0;
  int p = 0;
  int sum = 0;
  int i = 0;
 
  for (i = cardNumberLength - 1; i > -1; i--)
  {
    p = cardNumber[i];
 
    if ((i + 1) % 2 == 0) p = p * 2;
 
    if (p > 9) p = p - 9;
 
    sum = sum + p;
  }
 
  if (sum % 10 == 0) validationFlag = 1;
 
  return validationFlag;
}
 
void VerifyCard(const int* const cardNumber, const int cardNumberLength)
{
  if (Luhn(cardNumber, cardNumberLength))
    printf("This is a VALID credit card. Emitent: %s\n", EmitentNames[GetCardType(cardNumber)]);
  else
    printf("This card is INVALID!\n");
}
 
int main(void)
{
  int card[] = {3, 7, 8, 7, 3, 4, 4, 9, 3, 6, 7, 1, 0, 0, 0};
 
  VerifyCard(card, sizeof(card)/ sizeof(*card));
 
  return 0;
}
Никак не могу сделать чтобы самому вводить номер карты, получается только когда в коде заранее прописан номер карты.Буду благодарен кто поможет, подскажет.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2019, 14:33
Ответы с готовыми решениями:

Алгоритм Луна (Проверка корректности номера банковской карты)
Не могу найти никак программу на с++ в которую я бы вводила номер карты и происходила проверка по...

Алгоритм Луна (Проверка корректности номера банковской карты)
Не могу найти никак программу на с++ в которую я бы вводила номер карты и происходила проверка по...

Движение 3х планет (Луна не летает вокруг земли)
Пітаюсь запрограмировать движение Земли и Луны вокруг солнца, но не получается закрутить луну...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

0
09.12.2019, 14:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2019, 14:33
Помогаю со студенческими работами здесь

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная...

Проверка карт на валидность. Алгоритм Луна. Си
Доброго времени суток, дамы и господа! Может-ли кто-нибудь подсказать в какую сторону мне копать? Я...

Алгоритм Луна - проверка кредитных карт
Мне надо создать программу, которая, при введении номера кредитки, проверяет, может ли эта карточка...

Алгоритм Луна для валидации кредитных карт
Привет всем! Нужна помощь! Нужно запрограммировать алгоритм луна для валидации кредитных карт!...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru