平方根の近似整数
に限らず、正の実数の平方根を漸化式で求めるにあたり、適切な初期値からはじめる必要があります。ここでは、そのための手順を示すことにします。C言語では、次のようになります。
int isqrt(double a)
{
int i;
a /= 2;
for(i = 1; a > 0; i++) a -= i;
return i - 1;
} |
十進BASICでは、次のようになります。1から100までの平方根の近似整数を表示します。
C:\BASICprograms\isqrt.BAS
1: ! 0から100までの数の、平方根の近似整数と平方根を表示する。
2: OPTION ARITHMETIC DECIMAL
3: DECLARE EXTERNAL FUNCTION isqrt
4:
5: PRINT " n isqrt(n) SQR(n)"
6: FOR a = 0 TO 100
7: PRINT USING " ### ## --%.##############": a, isqrt(a), SQR(a)
8: NEXT a
9:
10: END
11:
12: ! 平方根の近似整数を求める外部関数
13: EXTERNAL FUNCTION isqrt(a)
14: LET i = 1
15: LET a = a / 2
16: DO WHILE a > 0
17: LET a = a - i
18: LET i = i + 1
19: LOOP
20: LET isqrt = i - 1
21: END FUNCTION
|