Series23. An integer N (> 2) and a set of N real numbers are given. The set is called sawtooth, if each of its internal elements is either larger or smaller than both of its neighbors (i.e., is a "tooth"). If this set is sawtooth, output 0; Otherwise, print the number of the first element that is not a tooth.

Solution in Python 3:

import random

N = random.randrange(5,20)
#N = 100
print("N = ",N)

x_prev = random.randrange(1,10)
#print(1,":",x_prev)
x_curr = random.randrange(x_prev,x_prev+11)
#print(2,":",x_curr)
print(x_prev,end="; ")
print(x_curr,end="; ")
k = -1
saw = 0
for i in range(2,N):
if k == 1:
x_next = random.randrange(x_curr,x_curr+11)
else:
x_next = random.randrange(x_curr-10,x_curr)
k *= -1
#print(i+1,x_curr,":",x_next)
print(x_next,end="; ")

if saw == 0:
if not ((x_prev < x_curr and x_curr > x_next) \
or (x_prev > x_curr and x_curr < x_next)):
saw = i
x_prev = x_curr
x_curr = x_next

print()
if saw == 0:
print("saw: ", saw)
else:
print("not saw: ", saw)