@Пaтрик
417 / 392 / 40
Регистрация: 21.01.2012
Сообщений: 972
|
13.06.2013, 12:05
|
|
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include <iostream>
template <typename T, typename Iterator>
T difference(Iterator first, Iterator last)
{
if (first == last)
return 0;
if (first + 2 == last)
return *(first + 1) - *first;
Iterator next = first + 1;
T diff = *next - *first;
while (next != last)
if (*next++ - *first++ != diff)
return 0;
return diff;
}
int main()
{
int a[] = { 1, 3, 5, 7, 9, 11, 13 };
std::cout << difference<int>(std::begin(a), std::end(a)) << std::endl;
return 0;
} |
|
0
|