Hailstone sequence: Difference between revisions
Content added Content deleted
imported>Chinhouse No edit summary |
|||
Line 767: | Line 767: | ||
27: length 112, first: [27 82 41 124] last: [8 4 2 1] |
27: length 112, first: [27 82 41 124] last: [8 4 2 1] |
||
Maximum sequence length: 351 for: 77031 |
Maximum sequence length: 351 for: 77031 |
||
</pre> |
|||
=={{header|Amazing Hopper}}== |
|||
<syntaxhighlight lang="c"> |
|||
#include <basico.h> |
|||
#proto Hailstone(_X_,_SW_) |
|||
algoritmo |
|||
valor=27, máxima secuencia=0, vtemp=0 |
|||
imprimir ( _Hailstone(27,1) ---copiar en 'máxima secuencia'--- , NL ) |
|||
i=28 |
|||
iterar |
|||
_Hailstone(i,0), copiar en 'vtemp' |
|||
cuando( sea mayor que 'máxima secuencia' ) { |
|||
máxima secuencia = vtemp |
|||
valor=i |
|||
} |
|||
++i |
|||
hasta que ' #(i==100000) ' |
|||
imprimir ( #(utf8("Máxima longitud ")),máxima secuencia,\ |
|||
" fue encontrada para Hailstone(",valor,\ |
|||
#(utf8(") para números <100,000")), NL ) |
|||
terminar |
|||
subrutinas |
|||
Hailstone(n, sw) |
|||
largo_de_secuencia = 0 |
|||
v={}, n, mete(v) |
|||
iterar |
|||
tomar si ( es par(n), #(n/2), \ |
|||
tomar si ( #(n<>1), #(3*n+1), 1) ) |
|||
---copiar en 'n'--- mete(v) |
|||
hasta que ' #(n==1) ' |
|||
#(length(v)), mover a 'largo_de_secuencia' |
|||
cuando (sw){ |
|||
decimales '0' |
|||
#( v[1:4] ), ",...,", |
|||
#( v[largo_de_secuencia-4 : largo_de_secuencia] ) |
|||
NL, #(utf8("Tamaño de la secuencia: ")) |
|||
imprime esto; decimales normales |
|||
} |
|||
retornar ' largo_de_secuencia ' |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
27,82,41,124,...,16,8,4,2,1 |
|||
Tamaño de la secuencia: 112 |
|||
Máxima longitud 351 fue encontrada para Hailstone(77031) para números <100,000 |
|||
</pre> |
</pre> |
||