Oppure

Loading
18/02/07 13:45
mind
Stavo leggendo sull'argomento, quando mi è venuta l'idea di creare degli script che semplificassero la scrittura di frazioni continue (usando l'algoritmo di Euclide). Posto il codice per gli interessati:


def frac(a)
  case a.length  
    when 1
      print a[0]
      return a[0]
    when 2
      printf "%d*%d+1", a[0], a[1]
      return a[0]*a[1]+1
    else
      printf "%d*(", a[0]
      n = a[0] * frac(Array(a[1, a.length]))
      printf ")+"
      n += frac(Array(a[2, a.length]))
      return n
  end
  
end
 

def make_frac(n, d)
    if( n % d < 2) then return d
    end
    return [] << n/d << make_frac(d, n % d)
  
end
#esempi:
#puts "\n" + frac([2, 1, 4, 2]).to_s
#puts make_frac(67, 24)
#puts "\n" + frac(make_frac(67, 24)).to_s 
aaa
18/02/07 13:46
mind
Si è persa l'indentazione arg!
C'è un modo per correggere?
Saluti
aaa