2010-09-12 1 views
4

На самом деле это не домашнее задание, я просто просматриваю некоторые вопросы в отдельной книге по математике, прежде чем начинаю заниматься информатикой на следующей неделе.Расчет контрольной цифры для ISBN

В любом случае, один из вопросов просит меня написать программу для выполнения этого алгоритма (который он объясняет). Часть, за которой я застрял, - это то, как взять 9-значное число и «разбить» его на отдельные целые числа, поэтому вычисления могут выполняться на каждой цифре.

Я думал о том, чтобы делить число на 100 000 000, а затем взять целое значение этого, чтобы получить первую цифру, но я не уверен, как получить остальных.

Если бы это было в PHP или что-то я мог бы просто использовать взрываюсь(), но я предполагаю, что это не точка здесь: P

ответ

4

Вы можете использовать моды (%) и оператор деления (/).

N% 10 даст вам последнюю цифру. N/10 (целочисленное деление) удалит последнюю цифру.

Вы можете продолжить, пока у вас не будет больше цифр.

0

использовать операцию по модулю:

a % 10 to get the last digit 
a % 100 to get the last two digits. (a % 100) - (a % 10) to get the second last number 
etc. 
1

После того, как вы разделили на 100000000 и принято целое значение, вы можете умножить это целое значение обратно 100000000 и вычесть его из ISBN. Это фактически просто снимает самую левую цифру. Так что теперь повторите с 10 000 000 - и так далее.

Пример с 5 цифр:

Start: 74325 

74325/10000 and int = 7 (there's your first digit) 
7 * 10000 = 70000 
74325 - 70000 = 4325 

4325/1000 and int = 4 (there's your next digit) 
4 * 1000 = 4000 
4325 - 4000 = 325 

и так далее!

 Смежные вопросы

  • Нет связанных вопросов^_^