Răspuns :
Pentru a rezolva această problemă, putem urma următorii pași:
1. Definim o funcție recursivă pentru a calcula produsul cifrelor impare ale unui număr.
2. Parcurgem vectorul și calculăm produsul cifrelor impare ale fiecărui element.
3. Identificăm elementul cu cel mai mare produs al cifrelor impare și ștergem primul element care îndeplinește această condiție.
4. Implementăm un subprogram pentru ștergerea unui element dintr-un vector.
```python
def produs_cifre_impare(n):
if n == 0:
return 1
cifra = n % 10
if cifra % 2 != 0:
return cifra * produs_cifre_impare(n // 10)
else:
return produs_cifre_impare(n // 10)
def Del(a, n, i):
for j in range(i, n - 1):
a[j] = a[j + 1]
return n - 1
def main():
n = int(input("Introduceți numărul de elemente din vector: "))
a = []
print("Introduceți elementele vectorului:")
for _ in range(n):
a.append(int(input()))
max_produs_impar = 0
indice_max_produs_impar = -1
for i in range(n):
produs_impar = produs_cifre_impare(a[i])
if produs_impar > max_produs_impar:
max_produs_impar = produs_impar
indice_max_produs_impar = i
if indice_max_produs_impar != -1:
n = Del(a, n, indice_max_produs_impar)
print("Vectorul rezultat este:")
print(a[:n])
if __name__ == "__main__":
main()
```
Aceasta este o implementare în Python a problemei descrise. Programul va solicita utilizatorului să introducă lungimea și elementele vectorului, va identifica elementul cu cel mai mare produs al cifrelor impare și îl va șterge din vector. Apoi, va afișa vectorul rezultat.
1. Definim o funcție recursivă pentru a calcula produsul cifrelor impare ale unui număr.
2. Parcurgem vectorul și calculăm produsul cifrelor impare ale fiecărui element.
3. Identificăm elementul cu cel mai mare produs al cifrelor impare și ștergem primul element care îndeplinește această condiție.
4. Implementăm un subprogram pentru ștergerea unui element dintr-un vector.
```python
def produs_cifre_impare(n):
if n == 0:
return 1
cifra = n % 10
if cifra % 2 != 0:
return cifra * produs_cifre_impare(n // 10)
else:
return produs_cifre_impare(n // 10)
def Del(a, n, i):
for j in range(i, n - 1):
a[j] = a[j + 1]
return n - 1
def main():
n = int(input("Introduceți numărul de elemente din vector: "))
a = []
print("Introduceți elementele vectorului:")
for _ in range(n):
a.append(int(input()))
max_produs_impar = 0
indice_max_produs_impar = -1
for i in range(n):
produs_impar = produs_cifre_impare(a[i])
if produs_impar > max_produs_impar:
max_produs_impar = produs_impar
indice_max_produs_impar = i
if indice_max_produs_impar != -1:
n = Del(a, n, indice_max_produs_impar)
print("Vectorul rezultat este:")
print(a[:n])
if __name__ == "__main__":
main()
```
Aceasta este o implementare în Python a problemei descrise. Programul va solicita utilizatorului să introducă lungimea și elementele vectorului, va identifica elementul cu cel mai mare produs al cifrelor impare și îl va șterge din vector. Apoi, va afișa vectorul rezultat.