0
A
답변
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
답변 해 주셔서 감사합니다! 그러나'(X> 0) +'대신'(X <0) +'이되어서는 안됩니까? – user3932000
@ user3932000 완전히 고치고 고마워 + 고정. – Timtech