•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
출처
https://theseed.io/raw/%ED%8B%80:%EA%B3%84%EC%82%B0%EA%B8%B0?uuid=667cebcf-0a22-4580-a435-aff3bae92692

as : "a" value to string; bs : "b" value to string;
al : "a" string length (integer); bl : "b" string length (integer)
ad : "a" decimal point (integer); bd : "b" decimal point (integer);
au : gold "a" upper value (string→integer); bu : "b" upper value (string→integer);
ab : "a" below value (string→integer); bb : "b" below value (string→integer);
ap : "a" # of places of decimal (for addition or subtraction);
ac : the value above the demical point of common logarithm of a (for multiplication or division) (integer);
bp : "b" # of places of decimal (for addition or subtraction);
bc : the value above the demical point of common logarithm of b (for multiplication or division) (integer);
0.303과 0.0303은 다른 수이므로 자리수가 다름을 표시할 용도
ru : "result" upper value (integer→string); rb : "result" below value (integer→string);
rp : "result" # of places of decimal (integer);
rs : "result" suprerior value (integer→string); ri : "result" inferior value (integer→string);
i : index; tu : temporary value 1 (integer); tv : temporary value 2 (integer); tw : temporary value 3 (integer); tx : temporary value 4 (integer); ty : temporary value 5 (integer);
ps : pass (logical); ts : not about gender test (logical)
ea : error about "a"; eb : error about "b";
wa : warning about "a" ; wb : warning about "b" ;
ns : negative sign for multiplication and division (string);
소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기합니다.


the seed에서 지원되는 long(integer)가 unsigned였으면 1844경까지 가서 충분히 19자리로 놀 수 있었는데, signed long이므로 922경까지 가능한 공간에서 18자리로 잘라내기. 소수점 위 최대 18자리, 소수점 아래 최대 18자리







error code 02 번 : 입력한 변수는 숫자로 읽을 수 없습니다. 반점(,)을 입력했다면 반점을 지우고 다시 입력하세요.

error code 03 번 : 0으로 나눌 수 없습니다.(아래쪽 참고)

덧셈과 뺄셈 계산과정을 적어봅니다.




a와 b 모두 0이 아닌 경우에서 곱셈을 연산하는 과정입니다.


a와 b 모두 0이 아닌 경우에서 나눗셈을 연산하는 과정입니다.


먼저 ru를 문자열로 변환합니다. 18자리씩 끊어 표기하므로 소수점 위 19~36번째 자리에 해당하는 rs값이 (곱한 값을 더했는데도) 0일 경우 rs를 빈 문자열로 바꿉니다. 곱셈과정에서 ru의 윗자리인 rs값이 0보다 클 경우, 1~18번째 자리인 ru에 빈 자리를 채우도록 ru의 왼쪽을 0으로 채웁니다.


#rb 정리 부분
소수점 아래 마지막 문자의 번호는 (문자열 길이 - 1)입니다. 극단적으로 .10000 00000 00000 000 같은 것이 나올 수 있겠지만 18회 조사합니다.
substr(0,0)으로 하면 ""이 됩니다.

곱셈연산이면서 ri가 빈 문자열이 아닐 경우 true를 주는 논리값으로 ps를 정의합니다.

소수점 아래 19~36번째 자리에 해당하는 ri값이 0일 경우 ri를 빈 문자열로 바꿉니다.
이 때 ri와 rb가 모두 0일 경우 rb도 빈 문자열로 바꾸고 rp=0으로 둡니다.


곱셈 과정에서 ri가 0보다 클 경우 rb를 문자열로 변환하고 rb, ri의 왼쪽을 0으로 채웁니다.


ri가 비었고 rb가 0이 아닌 경우 rb를 문자열로 바꾼 다음 왼쪽을 0으로 채웁니다.


ps가 true이면 rp를 ri의 길이로, 그렇지 않고 rb만 0이 아닌경우 rp를 rb의 길이로 정의합니다.


곱셈연산이면서 ri가 빈 문자열이 아닐 경우 ri의 오른쪽부터 붙은 "0"들을 모두 지웁니다, 그렇지 않을 경우 rb의 오른쪽에 붙은 "0"들을 모두 지웁니다,








19~36번째 자리까지 계산한 경우 rp에 18을 더합니다.


rb 정리를 이것으로 종료합니다.

아래 출력 변수 설명
sa : searching a; sb : searching b; sf : searching f;
rl : result string length to output; p : a point of string(s);
ru는 계산결과에서 소수점 위 자리이므로, dot(.)이 나오지 않습니다.
변수를 입력하세요...(a, b, f를 입력하세요...)