#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 29 11:34:15 2022

@author: leprince
"""
def factRec(n):
    if n==0:
        return 1
    else :
        print("appel à factRec avec argument : " , n-1)
        a=n*factRec(n-1)
        print(a)
        return (a)
        
print(factRec(6))


def puis(x,n):# x réel (flottant), n>=0
    if n==0:
        return 1
    elif n==1:
        return x
    else :
        if  n%2==0:
            a=puis(x,n//2)
            return(a*a)
        if  n%2==1:
            a=puis(x,n//2)
            return(x*a*a) 


def symTableauRec(T):
    if len(T) <= 1 :
        return T
    else :
        return [T[-1]] + symTableauRec(T[1:len(T)-1]) + [T[0]]
    
#TEST 
T1 = [1,2,3,4,5]
T2 = [1,2,3,4,5,6]
print(T1)
print(symTableauRec(T1))
print(T2)
print(symTableauRec(T2))

def symTableauRec2Partiel(T,i):
    """ effectue la symétrie dans T[i:n-i] """
    n = len(T)
    # cas de base : si i==n//2, ne rien faire
    if i < n//2 :
        T[i] , T[n-1-i] = T[n-1-i] , T[i]
        symTableauRec2Partiel(T,i+1)
        
def symTableauRec2(T):
    symTableauRec2Partiel(T,0)   
#TEST 
T1 = [1,2,3,4,5]
T2 = [1,2,3,4,5,6]
print(T1)
symTableauRec2(T1)
print(T1)
print(T2)
symTableauRec2(T2)
print(T2)