Division von nicht so kleinen Zahlen

15

Schreiben Sie ein Programm oder eine Funktion , die in positive ganze Zahlen nimmt a, bund c, und druckt oder kehrt a/bzu cDezimalstellen, mit den Operationen + - * /% [addieren, subtrahieren, multiplizieren, dividieren, modulieren] auf die positiven ganzen Zahlen: Sie können alle verwenden , die Ihre Sprache erlaubt, aber nicht auf Gleitkommazahlen. Der Bereich von a, b, c ist der Bereich, der für vorzeichenlose ganze Zahlen in Ihrer Sprache zulässig ist. Das Zahlenergebnis wird auf die letzte zu druckende Ziffer gekürzt (also nein round).

Dies bedeutet, dass Sie teilnehmen können, wenn Ihre Sprache keinen Integer-Typ (nur Float) hat, indem Sie diese Float-Zahlen nur als positive Ganzzahlen verwenden. Der Schlüssel dieser Übung wäre, die Funktion zu schreiben, die die Ziffern in einer Gleitkommadivision findet, wobei nur die Operation + - * /% für [vorzeichenlose] Ganzzahlen verwendet wird.

Beispiele

  • print(1,2,1) würde drucken 0.5
  • print(1,2,2) würde drucken 0.50
  • print(13,7,27) würde drucken 1.857142857142857142857142857
  • print(2,3,1) würde drucken 0.6
  • print(4,5,7) würde drucken 0.8000000
  • print(4,5,1) würde drucken 0.8
  • print(9999,23,1) würde drucken 434.7
  • print(12345613,2321,89) würde drucken, wenn Ihre Sprache 32 Bit ohne Vorzeichen hat 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466

Der kürzeste Code in Bytes gewinnt. Es tut mir leid, wenn dies nicht klar zu sein scheint ... Ich kann mich auch nicht an Sprachen und Wörter erinnern Testen Sie einige Eingaben, die sich von den vorgeschlagenen unterscheiden.

RosLuP
quelle
1
Was ist der Bereich der ganzen Zahlen a, b, c?
Ton Hospel
@Ton Hospel Der Bereich von a, b, c ist der Bereich, in dem vorzeichenlose Ganzzahlen in Ihrer Sprache zulässig sind. Wenn es sich beispielsweise um vorzeichenlose 32-Bit-Werte handelt, ist der Wert 0..0xFFFFFFFF, bei c> = 0xFFFFFFF ist die Ausgabe jedoch so groß Sei ein bisschen langsam ...
RosLuP
2
Es ist eine Rundungsfunktion - oder genauer gesagt, es muss eine Rundungsfunktion sein, um richtig spezifiziert zu werden. Derzeit ist unklar, wie die richtige Antwort für z (1,2,0). Siehe meta.codegolf.stackexchange.com/a/5608/194
Peter Taylor
1
Entschuldigen Sie, dass Sie diese Frage erneut öffnen. Ich denke, es ist fast bereit, wiedereröffnet zu werden, abgesehen von dem Problem, auf das Peter Taylor hingewiesen hat. Was ist die Ausgabe für (1,2,0)?
ETHproductions
2
Eigentlich (1,2,0)sollte es keine Rolle spielen, da 0es sich nicht um eine positive ganze Zahl handelt. Und ich würde es vorziehen, wenn c so bleibt, da ich es vorziehen würde, nicht daran denken zu müssen, ein anzufügen .oder nicht
Ton Hospel

Antworten:

5

05AB1E , 17 13 11 19 14 Bytes

Eingabe in das Formular b, a, c.
5 Bytes dank Grimy gespart .

‰`¹+I°*¹÷¦'.sJ

Probieren Sie es online!

Emigna
quelle
Ich habe es gerade online mit Eingabe 13,7,27 versucht und die Antwort ist nicht korrekt
Mathieu J.
@shigazaru: Gibt das gleiche Ergebnis wie die Testfälle zurück. Ist Ihnen die Reihenfolge der Eingaben aufgefallen b,a,c?
Emigna
Ich versuche den Knopf "Online versuchen", wo es diese Unterteilung gibt: 12345613/2321 mit 89 Stellen, aber das Ergebnis ist 5319.922 ... anstelle von 5319.0922 ...
RosLuP
1
15:‰`I°*¹÷I°+¦'.sJ
Grimmy
2
14:‰`¹+I°*¹÷¦'.sJ
Grimmy
4

Haskell, 87 Bytes

(a#b)c|s<-show$div(a*10^c)b,l<-length s-c,(h,t)<-splitAt l s=['0'|l<1]++h++['.'|c>0]++t

Anwendungsbeispiel: (13#7)27-> "1.857142857142857142857142857".

23 Bytes, um den c==0Fall zu behandeln und eine führende Null anstelle von Dingen wie zu verwenden .5.

Wie es funktioniert: multiplizieren amit 10^c, dividieren durch b, in eine Zeichenfolge verwandeln , teilen , wo das .eingefügt werden muss, beide Teile mit einem .dazwischen verbinden und die Kantenhüllen befestigen.

nimi
quelle
4

Perl 6 ,  58 57 55  48 Bytes

{(($^a.FatRat/$^b*10**$^c).Int.FatRat/10**$c).base(10,$c)}
{(Int($^a.FatRat/$^b*10**$^c).FatRat/10**$c).base(10,$c)}
{base Int($^a.FatRat/$^b*10**$^c).FatRat/10**$c: 10,$c}
{base ($^a*10**$^c div$^b).FatRat/10**$c: 10,$c}

Was ziemlich ärgerlich ist, ist, dass es auf genau das gekürzt werden könnte, was {($^a.FatRat/$^b).base(10,$^c)}auf den nächsten Wert gerundet werden darf.

Erläuterung:

# bare block lambda with 3 placeholder parameters 「$^a」, 「$^b」 and 「$^c」
{
  (
    (

      # create an Int containing all of the digits we care about
      $^a * 10 ** $^c div $^b

    ).FatRat / 10**$c  # turn it into a Rational

  ).base( 10, $c )     # force it to display 「$c」 digits after the decimal point
}
Brad Gilbert b2gills
quelle
Ich kenne mich nicht mit Perl6 aus, bin aber keine (...).FatRat / 10**$xDivision eines Rational? Sie dürfen nur ganze Zahlen teilen.
Nimi
@nimi a Rational ist eine Klasse mit zwei Ints .
Brad Gilbert b2gills
Die mathematischen Operatoren sind nur für ganzzahlige Typen und nicht für andere numerische Typen zulässig. Zitat: "Der Anhaltspunkt für diese Übung ... die Funktion zu schreiben ... nur die Operation + - * /% für [vorzeichenlose] Ganzzahlen zu verwenden."
Nimi
@nimi Also, wenn ich eine Neuimplementierung von Rational schreibe und keine hinzufüge, does Realoder does Numericwäre das erlaubt? Was wäre, wenn ich die vorhandene Klasse erweitern würde, um diese Rollen zu entfernen?
Brad Gilbert b2gills
Ich weiß es nicht. Ich habe die Spezifikation wie gesagt gelesen: +-*/%nur mit einfachen Integer-Typen. "Plain Integer" in Bezug auf die Funktionalität (vor allem: Integer Division) nicht der internen Darstellung. Glauben Sie, dass es erlaubt ist, eine Software-Gleitkomma-Bibliothek zu verwenden, die (trotz des Namens) nur Ganzzahlen für die interne Darstellung verwendet?
Nimi
3

Perl, 55 Bytes

Beinhaltet +3 für -p

Geben Sie a und b in einer Zeile bei STDIN und c in der nächsten Zeile ein

division.pl
1 26
38
^D

division.pl:

#!/usr/bin/perl -p
eval'$\.=($_/$&|0)."."x!$\;$_=$_%$&.0;'x(/ .*/+<>)}{

das $_/$&ist ein bisschen umstritten. Eigentlich möchte ich dort eine Ganzzahldivision, aber Perl hat das nicht, ohne spezielle Module zu laden. Es ist also vorübergehend eine Nicht-Ganzzahl, die ich dann sofort abschneide (benutze |0), damit ich die Ganzzahl erhalte, die eine Ganzzahldivision ergibt. Es könnte so umgeschrieben ($_-$_%$&)/$&werden, dass es nicht einmal vorübergehend einen nicht ganzzahligen Wert hat (intern wäre es jedoch immer noch ein Float).

Tonne Hospel
quelle
Könnten Sie verwenden $-, um es nur int zu machen? (Ich denke, es gibt strenge Grenzen für den Mix / Max-Wert, und ich bin sicher, Sie hätten es bereits in Betracht gezogen, aber es lohnt sich, es zu überprüfen!)
Dom Hastings,
@DomHastings Nach einer Gleitkommadivision wäre dies immer noch ein Abbruch. Perl hat einfach keine Ganzzahldivision ohneuse integer
Ton Hospel
Ah, so ist es nur maskiert $-, gut zu wissen. Vielen Dank!
Dom Hastings
3

JavaScript (ES6), 55-50 Byte

f=(a,b,c,d=".")=>~c?(a/b|0)+d+f(a%b*10,b,c-1,""):d

(a/b|0)Führt eine Float-Division durch, wandelt sich aber sofort zu einer Ganzzahl. Bitte lassen Sie mich wissen, wenn dies nicht erlaubt ist.

ETHproductions
quelle
3

PHP, 187 Bytes

arbeitet mit Strings für den Zähler, die int-Werte größer als sein können PHP_INT_MAX

list(,$n,$d,$c)=$argv;$a=str_split($n);while($a){$n.=array_shift($a);if($n>=$d||$r)$n-=$d*$r[]=$n/$d^0;}if(!$r)$r[]=0;if($c)$r[]=".";while($c--){$n*=10;$n-=$d*$r[]=$n/$d^0;}echo join($r);

Ich habe keine andere Chance als 13/7 auf 1.8571428571429 zu verkürzen und ich erreiche damit nicht den Testfall mit 27 Nachkommastellen

Auf diese Weise sind 36 Bytes nicht zulässig

<?=bcdiv(($z=$argv)[1],$z[2],$z[3]);
Jörg Hülsermann
quelle
Float Division ist gemäß OP
Maltysen 12.10.16
@Maltysen Sorry, ich mache ein Rollback. Ich hatte solche Angst, eine kürzere Lösung zu finden, dass ich nicht erkenne, dass es gegen die Spezifikation geht.
Jörg Hülsermann
2

Pyth - 21 19 18 16 14 Bytes

Werde mal über das Eingabeformat schauen, das einen Haufen sparen kann.

j\.c`/*E^TQE]_

Test Suite . (PS, die 27 endet nicht online, also habe ich stattdessen 10 gemacht).

Maltysen
quelle
@Emigna Es muss auch nicht sein, da 0es keine positive ganze Zahl ist (obwohl die op immer wieder Beispiele hinzufügt c=0)
Ton Hospel
@TonHospel: Ah, in der Tat. Ich habe mir die Beispiele angesehen. Ich kann meine Antwort dann verkürzen :)
Emigna
Funktioniert nicht mit Zahlen mit einer führenden 0 nach dem Komma, z. B. 2/21 bis 10 Dezimalstellen.
Emigna
2/21 mit 10 Stellen drucken nur 9 Stellen nach dem Punkt
RosLuP
2/21 mit 10 Stellen, wie Emigna anstelle von 0,09 sagt ... 0,9 drucken ...
RosLuP
2

JavaScript (ES6),  64  62 59 Bytes

2 Bytes gespart dank ETHproductions.

Die eingeschlossene Division ergibt immer eine ganze Zahl.

f=(a,b,n,s)=>~n?f((q=(a-a%b)/b,a%b*10),b,n-1,s?s+q:q+'.'):s

console.log(f(13,7,27))

Arnauld
quelle
Würde das Überspringen minsgesamt noch funktionieren? f=(a,b,n,s)=>n+1?f((q=(a-a%b)/b,a%b*10),b,n-1,s?s+q:q+'.'):sist 60 Bytes.
ETHproductions
@ETHproductions - In der Tat. Vielen Dank!
Arnauld
2

Java 7, 105 Bytes

import java.math.*;String c(int...a){return new BigDecimal(a[0]).divide(new BigDecimal(a[1]),a[2],3)+"";}

Ungolfed & Testcode:

Probieren Sie es hier aus.

import java.math.*;
class M{
  static String c(int... a){
    return new BigDecimal(a[0]).divide(new BigDecimal(a[1]), a[2], 3)+"";
  }

  public static void main(String[] a){
    System.out.println(c(1, 2, 1));
    System.out.println(c(1, 2, 2));
    System.out.println(c(13, 7, 27));
    System.out.println(c(2, 3, 1));
    System.out.println(c(4, 5, 7));
    System.out.println(c(4, 5, 0));
    System.out.println(c(9999, 23, 0));
    System.out.println(c(12345613, 2321, 89));
  }
}

Ausgabe:

0.5
0.50
1.857142857142857142857142857
0.6
0.8000000
0
434
5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466
Kevin Cruijssen
quelle
Ich glaube nicht, dass dies gültig ist, weil es im Wesentlichen eine Gleitkommadivision ist, obwohl sie aufgerufen wird divideund nicht /.
corvus_192
@ corvus_192 Eine andere gelöschte Java-Antwort, die später als ich gepostet wurde, hatte die Begründung, die ich hier kopieren und einfügen werde ( Dank für diese Erklärung geht an @SocraticPhoenix ): " Funktionsweise: Java BigDecimals werden als BigIntegers mit einer Skala implementiert. Dies ist technisch gesehen ein Gleitkommawert, jedoch verwenden die Objekte BigInteger und BigDecimal nur den intTyp zum Speichern von Zahlenwerten. (Ist das nicht cool? BigInteger ist eine Zahl int[]aus Ziffern. Wie {1,2,5} in Basis 10 ist 125. I Ich bin mir nicht sicher, auf welcher Basis die Ziffern von BigInteger tatsächlich liegen, aber ich würde vermuten, dass es mehr als 10 sind. "
Kevin Cruijssen
2

Ruby, 67 Bytes

->(a,b,c){('0'+(a*10**c/b).to_s).gsub(/^0*(.+)(.{#{c}})$/,'\1.\2')}

wenn ich es zu einer Funktion mache, die obigen Testfälle auszuführen

def print(a,b,c); ('0'+(a*10**c/b).to_s).gsub(/^0*(.+)(.{#{c}})$/, '\1.\2'); end
 => :print 
print(1,2,1)   # would print 0.5
 => "0.5" 
print(1,2,2)   # would print 0.50
 => "0.50" 
print(13,7,27) # would print 1.857142857142857142857142857
 => "1.857142857142857142857142857" 
print(2,3,1)   # would print 0.6
 => "0.6" 
print(4,5,7)   # would print 0.8000000
 => "0.8000000" 
print(4,5,1)   # would print 0.8
 => "0.8" 
print(9999,23,1) # would print 434.7
 => "434.7" 
print(12345613,2321,89) # would print if your Language has 32 bit unsigned 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466
 => "5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466" 
"('0'+(a*10**c/b).to_s).gsub(/^0*(.+)(.{#{c}})$/, '\1.\2')".length
 => 52 
Mathieu J.
quelle
Willkommen beim Code Golf! Wenn Sie eine Funktion definieren, müssen Sie sie für die meisten Sprachen vollständig definieren, und Sie können sich nicht darauf verlassen, dass es solche vordefinierten Variablen gibt. In Ruby können Sie ein Lambda am schnellsten definieren, ->a,b,c{...}indem Sie die Ellipsen durch Ihren Code ersetzen. (Die tatsächliche Zuweisung der Variablen ist aus Konsensgründen nicht erforderlich.)
Value Ink,
danke, ich hatte den falschen Eindruck, dass andere diesen Teil ausgelassen hatten ... aber du hast recht. Ich habe es gerade hinzugefügt.
Mathieu J.
2

Schläger 203 Bytes

(let*((s(~r(/ a b)#:precision c))(sl(string-split s "."))(s2(list-ref sl 1))(n(string-length s2)))
(if(< n c)(begin(for((i(- c n)))(set! s2(string-append s2 "0")))(string-append(list-ref sl 0)"."s2))s))

Ungolfed:

(define (f a b c)
  (let* ((s (~r(/ a b)#:precision c))
         (sl (string-split s "."))
         (s2 (list-ref sl 1))
         (n (string-length s2)))
    (if (< n c)
        (begin 
          (for ((i (- c n)))
            (set! s2 (string-append s2 "0")))
          (string-append (list-ref sl 0) "." s2))
        s )))

Verwendung:

(f 7 5 3)
(f 1 2 1) 
(f 1 2 2) 
(f 13 7 27)

Ausgabe:

"1.400"
"0.5"
"0.50"
"1.857142857142857142857142857"

Andere Methode (ungültige Antwort hier):

(real->decimal-string(/ a b)c)
rnso
quelle
Ich befürchte, dies ist ungültig, da real->decimal-stringein realWert als erstes Argument erwartet wird, ebenso eine /Gleitkommadivision, die in dieser Aufgabe nicht zulässig ist. Also: real->decimal-stringrunden ( (f 1 6 7)-> 0.1666667) statt abschneiden.
Nimi
Danke für die Beobachtungen. Ich werde den Code bald korrigieren.
RNSO
1

q, 196 Bytes

w:{((x 0)div 10;1+x 1)}/[{0<x 0};(a;0)]1;{s:x 0;m:x 2;r:(10*x 1)+$[m<0;{x*10}/[-1*m;a];{x div 10}/[m;a]]mod 10;d:1#.Q.s r div b;($[m=-1;s,".",d;$[s~,:'["0"];d;s,d]];r mod b;m-1)}/[c+w;("";0;w-1)]0

Zum Ausführen: Stellen Sie zuerst a, b, c ein.

Boston Walker
quelle
1

Rust, 114 Bytes

fn print(mut a:u32,b:u32,c:u32){let mut p=||{print!("{}",a/b);a=a%b*10};p();if c>0{print!(".")}for _ in 0..c{p()}}

Testcode:

fn main() {
    print(1, 2, 1);    println!(""); // should print 0.5
    print(1, 2, 2);    println!(""); // should print 0.50
    print(13, 7, 27);  println!(""); // should print 1.857142857142857142857142857
    print(2, 3, 1);    println!(""); // should print 0.6
    print(4, 5, 7);    println!(""); // should print 0.8000000
    print(4, 5, 0);    println!(""); // should print 0
    print(9999, 23, 0);println!(""); // should print 434
    print(12345613,2321,89); println!("\n");  // 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466
}
Christopher Phillips
quelle
1

PHP, 89 Bytes

list(,$a,$b,$c)=$argv;for($o=intdiv($a,$b).'.';$c--;)$o.=intdiv($a=10*($a%$b),$b);echo$o;

Intdiv () ist in PHP 7 eingeführt, so dass es das erfordert. PHP 7.1 würde mir erlauben, die Liste () zu [] zu ändern und so 4 Bytes zu sparen.

verwenden wie:

php -r "list(,$a,$b,$c)=$argv;for($o=intdiv($a,$b).'.';$c--;)$o.=intdiv($a=10*($a%$b),$b);echo$o;" 1 2 1
user59178
quelle
Ersetzen $o.=intdiv($a=10*($a%$b),$b);durch $o.=($a=10*($a%$b))/$b^0;spart 4 Bytes.
Jörg Hülsermann
Ursprünglich wollte ich diesen Rat befolgen (ich habe die Antwort und alles bearbeitet), aber beim zweiten Gedanken IST es eine Gleitkommadivision und dann eine Umwandlung in int, sodass ich mich für eine <10% ige Längenzunahme lieber vollständig an die Spezifikationen von halten würde die Frage.
user59178
1

C #, 126 Bytes

(a,b,c)=>{var v=a*BigInteger.Parse("1"+new string('0',c))/b+"";return v.PadLeft(c+1,'0').Insert(Math.Max(1,v.Length-c),".");};

Volles Programm mit Testfällen:

using System;
using System.Numerics;

namespace DivisionOfNotSoLittleNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<BigInteger,BigInteger,int,string>f= (a,b,c)=>{var v=a*BigInteger.Parse("1"+new string('0',c))/b+"";return v.PadLeft(c+1,'0').Insert(Math.Max(1,v.Length-c),".");};

            //test cases:
            Console.WriteLine(f(1,2,1));    //0.5
            Console.WriteLine(f(1,2,2));    //0.50
            Console.WriteLine(f(13,7,27));  //1.857142857142857142857142857
            Console.WriteLine(f(2,3,1));    //0.6
            Console.WriteLine(f(4,5,7));    //0.8000000
            Console.WriteLine(f(4,5,1));    //0.8
            Console.WriteLine(f(9999,23,1));    //434.7
            Console.WriteLine(f(12345613,2321,89)); //5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466
            Console.WriteLine(f(2,3,1));    //0.6
            Console.WriteLine(f(4,5,2));    //0.80
        }
    }
}

Integer Division ist implementiert. Zahlen jeder Größe können aufgrund des BigIntegerDatentyps verwendet werden (der Import System.Numericsist erforderlich). Der Digit-Count-Parameter cist auf 2 ^ 31-1 beschränkt, sollte jedoch mehr als genug Ziffern enthalten.

adrianmp
quelle
1

Groovy ( 78 77 42 Bytes)

{a,b,n->Eval.me(a+'.0g').divide(b, n, 1)}​

Erläuterung

Eval.me(a+'.0g');- Konvertieren von Integer-Eingabe in BigDecimal-Eingabe. In der groovigen BigDecimal-Notation ist dies die doppelte Notation mit einem angehängten G oder g. Ich hätte auch den Konstruktor verwenden können, new BigDecimal(it)aber dadurch wurde ein Byte gespeichert.
.divide(b, n, 1)- Mit n Genauigkeit durch b teilen, Rundungsmodus halbieren.

Versuchen Sie es hier: https://groovyconsole.appspot.com/script/5177545091710976

Magische Kraken-Urne
quelle
BigDecimal unterstützt jedoch Gleitkommaoperationen, die meines Erachtens, sofern ich mich nicht irre, für diese Übung als verboten gelten.
Mathieu J.
1

Batch, 122 Bytes

@set/as=%1/%2,r=%1%%%2
@set s=%s%.
@for /l %%a in (1,1,%3)do @set/ad=r*10/%2,r=r*10%%%2&call set s=%%s%%%%d%%
@echo %s%
Neil
quelle
1

Mathematica, 50 Bytes

StringInsert[ToString@Floor[10^# #2/#3],".",-#-1]&

Unbenannte Funktion von drei Argumenten (die geordnet csind a, bum ein Byte irgendwo zu speichern), die eine Zeichenfolge zurückgeben. Es multipliziert a/bmit 10^c, übernimmt die größte Ganzzahlfunktion, konvertiert dann in eine Zeichenfolge und fügt an der entsprechenden Stelle einen Dezimalpunkt ein. Schade, dass die Funktionsnamen nicht kürzer sind.

Greg Martin
quelle
1

Python 3, 62 Bytes

a,b,c=map(int,input().split());print("{:.{1}f}".format(a/b,c))

Probieren Sie es hier

* Hinweis : repl.it eine ältere verwendet ver von Python 3 , die alle Feldindizes erfordert angegeben werden, was bedeutet , "{:.{1}f}"wird "{0:.{1}f}"statt, so dass es 63 Bytes in repl.it

Wie benutzt man

Geben Sie alle drei Werte mit Leerzeichen dazwischen ein. Dh eine Eingabe von 1 2 1würde ein Ergebnis von ergeben0.5

Erläuterung

input().split(): Ruft Benutzereingaben ab und teilt sie in eine Liste mit dem Trennzeichen (Leerzeichen)

a,b,c = map(int,XX): Ordnet die Variablen den vom Benutzer angegebenen Werten mit einem Int-Typ zu

"{:.{1}f}".format(a/b,c): Formatiert einen String mit dem Divisionsergebnis und Ersatz angezeigt {1}mitc , um die Dezimalstelle der angezeigten Zeichenfolge festzulegen

print(XX): druckt die gelieferte Zeichenfolge

user7297223
quelle
1

Python 3 , 58 Bytes

lambda a,b,c:(lambda s:s[:-c]+"."+s[-c:])(str(a*10**c//b))

Probieren Sie es online!

Dies ist auf die angegebene Anzahl von Dezimalstellen genau, solange a * 10 ** ces nicht zu groß ist.

Ich habe versucht, Python 2 zu verkürzen str(...), `...`aber Python 2 fügt Lam Ende eine ein, wenn es zu groß ist, so dass es viel mehr Bytes kostet, danach zu suchen, als es wert ist.

HyperNeutrino
quelle
1

Stax , 13 Bytes

ä·oαì█↕▬AS¥é▼

Führen Sie es aus und debuggen Sie es

Argumente werden in der c a bReihenfolge akzeptiert .

rekursiv
quelle
Das Problem wäre der Fall "print (9999,23,1)" das Ergebnis print in der Post ist "434,7", während Ihr Ergebnis "4,7" scheint das gleiche der Fall zuletzt: 5319.092201etc statt 9.092201etc
RosLuP
Ich stimme nicht zu ... Ich bin heute Morgen Ihrem Link gefolgt und das Ergebnis für den Fall "print (9999,23,1)" in Ihrer Funktionsreihenfolge war 4,7 und nicht 434,7
RosLuP
@ RosLuP: Ich habe den Ansatz geändert. Das Ergebnis ist jetzt korrekt `434.7`. Dabei habe ich auch die Größe um ein Byte reduziert.
rekursiv
0

C 67 Bytes

h(a,b,i){int j=!i;for(;printf(j++?"%u":"%u.",a/b),i--;a=10*(a%b));}

Probieren Sie es online!

Einige Vorgängerversionen hatten, glaube ich, einen Fehler im Lesespeicher, der dem Programm zuzuordnen war ... Dank ceilingcat und für alle ...

RosLuP
quelle
@ceilingcat ok danke
RosLuP
Ich mag die letzten 69 Bytes
RosLuP
62 Bytes
Ceilingcat
@ceilingcat ok danke
RosLuP