|
> まあ、秀丸が標準でサポートしてくれれば一番簡単なんですけど ... (汗)
検査してないが、あふれにくい例、
// rootint.mac
// 古めかしい教科書的な式 ニュートン・ラフソン法
// 整数用の継ぎ接ぎ
selectword #b=val(gettext(seltopx,seltopy,selendx,selendy));
if(3>#b){beep endmacro}
if(2147483647<#b){beep endmacro}
#x0=#b/16; if(#x0==0)#x0=1; #x1=#x0+3; // 初期値
while((1<#x1-#x0)||(1<#x0-#x1)){
#x0=#x1;if(#x0==0)#x0=1;
#x1=(#x0+#b/#x0)/2;
}
#x0=#x1;if(#x0==0)#x0=1;// もう一度回す
#x1=(#x0+#b/#x0)/2;
if(#x0<#x1)#x1=#x0;// 収束が振動するとき 小さいほう
golineend insert " √は "+str(#x1); searchdown "[0-9]",regular;
endmacro
//2
//3 √は 1
//4 √は 2
//9 √は 3
//99 √は 9
//999 √は 31
//9999 √は 99
//99999 √は 316
//999999 √は 999
//9999999 √は 3162
//99999999 √は 9999
//999999999 √は 31622
//9999999999 √は 37550
//99999999999 √は 34867
|
|