Comment calculer la moyenne de 2 chiffres avec brainfuck?Calcul de la moyenne de 2 chiffres
Je veux dire que j'ai deux chiffres, par exemple 2 3
et sa moyenne est 2.5
pour 2 8
nous avons 5.0
Comment cela peut-il être fait?
Comment calculer la moyenne de 2 chiffres avec brainfuck?Calcul de la moyenne de 2 chiffres
Je veux dire que j'ai deux chiffres, par exemple 2 3
et sa moyenne est 2.5
pour 2 8
nous avons 5.0
Comment cela peut-il être fait?
Quelque chose le long des lignes de:
++>++++++++< this is input data
[<+>-] this adds the numbers
<[[->+<][->>+<<]] this does the calculation
L'approche consiste à répartir une somme de deux nombres. Par distribuer uniformément Je veux dire que la différence entre les valeurs est au plus 1 (puisqu'il n'y a pas de nombres à virgule flottante, vous devez en quelque sorte représenter par exemple 2,5). Une fois que vous avez deux cellules voisines contenant ces valeurs, n'hésitez pas à faire ce que vous voulez avec elles (vous pouvez le sortir, puis diminuer les nombres de chaque cellule et si vous avez 1, alors ".5").
Bien sûr, le code ci-dessus peut avoir des erreurs de pointeur, mais cela devrait suffire pour un démarrage et un débogage. De plus, je serais vraiment heureux de voir une bonne solution efficace.
Cela ne fonctionne pas pour plusieurs raisons. 1. [<+> -] essaie d'incrémenter une cellule à gauche de la cellule initiale - ne quitte pas 2. <[[-> + <][->> + <<]] n'entrera jamais dans la seconde boucle imbriquée ([- >> + < <]) 3. Même si tout 'fonctionnait', il ne serait pas capable de gérer les décimales et par handle je veux dire boucle infinie :(erreur fatale – Zac
meilleure solution:
,>, //input 1 and 2
>++++++[-<--------<-------->>]<< //decrement both by 48
[->+<]>>++< //add them and then put 2 in the third cell(devisor)
[ // ...
>[->+>+<<]
>[-<<-
[>]>>>[<[>>>-<<<[-]]>>]<<] //integer division (4/2 = 2, 3/2 = 1...)
>>>+
<<[-<<+>>]
<<<]
>[-]>>>>[-<<<<<+>>>>>] //...
<<<<++++++[-<++++++++>]<. //increment 28 and print result
J'allais dire que vous devriez montrer le code que vous avez à ce jour pour que nous puissions comprendre ce qui doit fixer, mais je me suis rendu dans ce cas, il est probablement plus facile de écrire la réponse à partir de zéro. – Jeff
J'ai recherché quelques informations sur cette langue, seulement pour découvrir qu'elle porte bien son nom. haha –
@j_syk Cette langue est probablement le * nerdest * jamais inventé (enfin, à l'exclusion de Malbolge). Mais c'est Turing complet, ce qui signifie que vous pouvez implémenter n'importe quel algorithme. Imaginez un framework d'application web basé dessus! ;) – Sorrow