← Catalogo
INOD
PyJS

Counting Phylogenetic Ancestors

CombinatoricsPhylogeny

Pagina originale su rosalind.info

Descrizione

Un albero binario non radicato ha tutti i nodi interni di grado 3. Il problema chiede il numero di nodi interni di un qualsiasi albero binario non radicato con n foglie.

Given

Un intero positivo n (3 ≤ n ≤ 10000).

Return

Il numero di nodi interni di un qualsiasi albero binario non radicato con n foglie.

Sample Dataset

4

Sample Output

2

La mia esecuzione

08/24/2026 11:24:47

Input · dataset.txt

7789

Output · run_log.txt

OK
 7787

Esegui nel browser · Pyodide

Mostra il codice sorgente (problem.py)
def lettura(filename):
    with open(filename) as f:
         riga = f.readline()
         return int(riga)
         
         
def main():
    n = lettura("dataset.txt")
    print("", n-2)
             
             
if __name__ == "__main__":
    # execute only if run as a script
    main() 
  

Soluzione JavaScript

Esegui ora, live

Mostra il codice sorgente
// Counting Phylogenetic Ancestors (Rosalind ID: INOD) - soluzione
// JavaScript indipendente, non una trascrizione di problem.py: stessa
// logica (un albero binario non radicato con n foglie ha esattamente
// n-2 nodi interni), riscritta in modo idiomatico per JS.
//
// Nota sul formato: problem.py usa print("", n-2), che con il
// separatore di default di print (uno spazio) produce uno spazio
// iniziale prima del numero. Lo riproduco identico per coerenza con
// l'output atteso da Rosalind/dal confronto testuale.
//
// Contratto: riceve il contenuto testuale di dataset.txt, restituisce
// l'output testuale (stessa forma dell'output Python).
export default function solve(datasetText) {
  const riga = datasetText.split("\n")[0].trim();

  if (!/^\d+$/.test(riga)) {
    throw new Error(`Input non valido: atteso un intero, ricevuto "${riga}"`);
  }

  const n = Number(riga);
  return ` ${n - 2}\n`;
}