62 lines
964 B
Plaintext
62 lines
964 B
Plaintext
function F(x: int): int
|
|
decreases x
|
|
{
|
|
if x < 10 then x else F(x - 1)
|
|
}
|
|
|
|
function G(x: int): int
|
|
decreases x
|
|
{
|
|
if 0 <= x then G(x - 2) else x
|
|
}
|
|
|
|
function H(x: int): int
|
|
decreases x + 60
|
|
{
|
|
if x < -60 then x else H(x - 1)
|
|
}
|
|
|
|
function I(x: nat, y: nat): int
|
|
decreases x + y
|
|
{
|
|
if x == 0 || y == 0 then
|
|
12
|
|
else if x % 2 == y % 2 then
|
|
I(x - 1, y)
|
|
else
|
|
I(x, y - 1)
|
|
}
|
|
|
|
function J(x: nat, y: nat): int
|
|
decreases x, y
|
|
{
|
|
if x == 0 then
|
|
y
|
|
else if y == 0 then
|
|
J(x - 1, 3)
|
|
else
|
|
J(x, y - 1)
|
|
}
|
|
|
|
function K(x: nat, y: nat, z: nat): int
|
|
decreases x, y, z
|
|
{
|
|
if x < 10 || y < 5 then
|
|
x + y
|
|
else if z == 0 then
|
|
K(x - 1, y, 5)
|
|
else
|
|
K(x, y - 1, z - 1)
|
|
}
|
|
|
|
function L(x: int): int
|
|
decreases 100 - x
|
|
{
|
|
if x < 100 then L(x+1) + 10 else x
|
|
}
|
|
|
|
function G'(n: nat): nat
|
|
decreases n
|
|
{
|
|
if n == 0 then 0 else n - G'(G'(n - 1))
|
|
} |