@@ -26,18 +26,18 @@ String? advdiv(String n1, String n2, [final String minstr = "-", final String de
2626 return null ;
2727
2828 if (n1.startsWith (minstr)) {
29- n1 = n1.replaceFirst (minstr, "" );
29+ n1 = n1.substring (minstr.length );
3030 neg = true ;
3131 };
3232 if (n2.startsWith (minstr)) {
33- n2 = n2.replaceFirst (minstr, "" );
33+ n2 = n2.substring (minstr.length );
3434 neg = ! neg;
3535 };
3636
3737 sign = neg ? minstr : "" ;
3838
39- n1 = n1.replaceAll (decstr, "." );
40- n2 = n2.replaceAll (decstr, "." );
39+ n1 = n1.replaceFirst (decstr, "." );
40+ n2 = n2.replaceFirst (decstr, "." );
4141
4242 if (n1[0 ]== "." )
4343 n1 = "0" + n1;
@@ -83,9 +83,8 @@ String? advdiv(String n1, String n2, [final String minstr = "-", final String de
8383 if (r1.length > 1 )
8484 r1 = r1.substring (1 )+ r1[0 ];
8585 }
86- else {
86+ else
8787 n1 = times10 (n1);
88- };
8988 n2 = times10 (n2);
9089 if (n1.endsWith (".0" ) && r1== "0" )
9190 n1 = n1.replaceFirst (".0" , "" );
@@ -151,15 +150,24 @@ String? advdiv(String n1, String n2, [final String minstr = "-", final String de
151150}
152151
153152void main (List <String > args) {
154- String n1, n2;
155-
156- if (args.length < 2 ) {
157- print ("Usage: advdiv n1 n2" );
158- return ;
153+ switch (args.length) {
154+ case 6 :
155+ print (advdiv (args[0 ], args[1 ], args[2 ], args[3 ], args[4 ], args[5 ]) ?? "Error" );
156+ break ;
157+ case 5 :
158+ print (advdiv (args[0 ], args[1 ], args[2 ], args[3 ], args[4 ], "" ) ?? "Error" );
159+ break ;
160+ case 4 :
161+ print (advdiv (args[0 ], args[1 ], args[2 ], args[3 ]) ?? "Error" );
162+ break ;
163+ case 3 :
164+ print (advdiv (args[0 ], args[1 ], args[2 ]) ?? "Error" );
165+ break ;
166+ case 2 :
167+ print (advdiv (args[0 ], args[1 ]) ?? "Error" );
168+ break ;
169+ default :
170+ print ("Usage: advdiv n1 n2" );
171+ return ;
159172 };
160-
161- n1 = args[0 ];
162- n2 = args[1 ];
163-
164- print (advdiv (n1, n2) ?? "Error" );
165173}
0 commit comments