Romeo » 19 июн 2009, 21:53
Ну смотри, у тебя есть два числа, например 121990 и 112005. Задача вычислить сколько целых лет прошло от первой даты до второй, при условии, что в каждом числе первые две цифры обозначают месяц, а следующие 4 цифры - год.
Для каждого числа нужно посчитать два значения. Обозначим число за d, а месяц и год за m и y соответственно. Тогда имеем следующие соотношения:
m = d / 10000;
y = d % 10000;
Следующий шаг - вычисление разницы полных лет. Для этого нужно рассмотреть разницу лет из второго числа и первого числа:
diff = y2 - y1 = 2005 - 1990 = 15 лет.
Затем нужно проверить у какой даты номер месяца больше. Если у второй даты номер больше или равен, то всё хорошо. Если же у второй даты номер меньше, чем у первой, то разницу лет нужно уменьшить на 1, так как последний год получается неполным.
В нашем случае (m2 = 11) < (m1 = 12), следовательно diff = diff - 1 = 14 лет.
Это и есть наш ответ. После этого diff, согласно заданию, нужно сравнить с числом 5. Вот и вся премудрость.
Я написал всё словами, а не предоставил готовую программу для того, чтобы ты попробовал реализовать алгоритм сам. Удачи.
Ну смотри, у тебя есть два числа, например 121990 и 112005. Задача вычислить сколько целых лет прошло от первой даты до второй, при условии, что в каждом числе первые две цифры обозначают месяц, а следующие 4 цифры - год.
Для каждого числа нужно посчитать два значения. Обозначим число за [b]d[/b], а месяц и год за [b]m[/b] и [b]y[/b] соответственно. Тогда имеем следующие соотношения:
[b]m[/b] = [b]d[/b] / 10000;
[b]y[/b] = [b]d[/b] % 10000;
Следующий шаг - вычисление разницы полных лет. Для этого нужно рассмотреть разницу лет из второго числа и первого числа:
[b]diff[/b] = [b]y2[/b] - [b]y1[/b] = 2005 - 1990 = 15 лет.
Затем нужно проверить у какой даты номер месяца больше. Если у второй даты номер больше или равен, то всё хорошо. Если же у второй даты номер меньше, чем у первой, то разницу лет нужно уменьшить на 1, так как последний год получается неполным.
В нашем случае ([b]m2[/b] = 11) [b]<[/b] ([b]m1[/b] = 12), следовательно [b]diff[/b] = [b]diff[/b] - 1 = 14 лет.
Это и есть наш ответ. После этого [b]diff[/b], согласно заданию, нужно сравнить с числом 5. Вот и вся премудрость.
Я написал всё словами, а не предоставил готовую программу для того, чтобы ты попробовал реализовать алгоритм сам. Удачи.