2015-01-29 5 views

답변

2

TI-Basic을 만난 지 오래되었지만 숫자의 숫자를 계산하는 수학적 수단이 있다는 것을 알고 있습니다. 각 장소는 10의 배수이기 때문에 숫자의 기본 10 로그와 1을 더할 수 있어야합니다. 이것은 양의 정수를 사용한다고 가정합니다.

대체적이고 더 일반적인 해결 방법은 숫자의 길이를 문자열로 변환하는 것입니다. 여기에 몇 가지 문서가있는 것처럼 보입니다. http://tibasicdev.wikidot.com/number-to-string2

0

양의 정수라고 가정하면 숫자에서 10의 증가하는 제곱을 뺄 수 있습니다. 결과가 0보다 작 으면 마지막 뺀 숫자가 자릿수입니다.

예를 들어 숫자 643을 고려해보십시오. 먼저 빼기 10 - 633은 양수입니다. 다음 시도 100 - 긍정적 인 543을 준다. 다음 1000 시도 - 부여 -357. 따라서 자릿수는 3입니다 (10^3으로 표시).

0

어느

f(x) 
:Func 
: If x = 0 
:  Return 1 
    0 → n 
: While x >= 1 
     x/10 → x (integer division would be ideal) 
     n + 1 → n 
: End 
: Return n 
:End Func 

아니면 더

f(x) = 
    if x == 0 then return 1 
    return int(10log(x)) + 1 

10 로그 준다 : 또한

1-9  0.~ 
10-99 1.~ 
100-999 2.~ 

10 로그 X = 로그 X/로그 10.

,
1

당신이 TI-84를 사용함을 볼 때,이 68k/NSpire 대답은 특별히 당신의 질문에 대답하지 않을 것입니다. 자연수에는 1 + int (log (X))를 사용하는 것이 쉽지만, 0이 아닌 정수도 지원하려면 어떻게해야할까요?

Prompt X 
1+int(log(abs(X 

당신이 숫자로 음수 기호를 계산하려면

, 바로 두 번째 라인의 시작 부분에 (X<0)+를 추가 :이 프로그램 (만 9 바이트) 트릭을 할해야합니다.


나는 또한 어떤 실수에 대한 ... 완전히 다른 해결책을 가지고, (소수점 포함) 그렇게 같이 Number to String 유틸리티를 사용할 수 있습니다 숫자로 음수 기호 수를 가진 정밀도 15 자 (10 바이트) :

Prompt X:X 
prgmS 
length(Ans 
+0

답변 해 주셔서 감사합니다! 그러나'(X> 0) +'대신'(X <0) +'이되어서는 안됩니까? – user3932000

+0

@ user3932000 완전히 고치고 고마워 + 고정. – Timtech