// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; contract Recursive { event RecursiveCallEvent(uint256 count); function recursive10() public returns (uint256){ return recursiveCall(10); } function recursive2() public returns (uint256){ return recursiveCall(2); } function recursive1() public returns (uint256){ return recursiveCall(1); } function recursive0() public returns (uint256){ return recursiveCall(0); } function recursiveCall(uint256 count) public returns (uint256) { if (count > 0) { emit RecursiveCallEvent(count); return recursiveCall(count-1); } return count; } }