Вопрос

Это на самом деле не домашнее задание, я просто смотрю несколько вопросов в дискретной книге Maths, прежде чем начать компьютерную науку на следующей неделе.

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

После того, как вы делитесь на 100 000 000 и приняли целочисленное значение, вы можете затем умножить это целое значение обратно на 100 000 000 и вычтите его от 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

и так далее!

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

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.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top