中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 18:59
楼 主 [数值计算]1-99内整数开根 发表于 2008-09-20 17:25 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
也在bathome发布
http://bbs.bathome.cn/viewthread.php?tid=1791&page=1&extra=page%3D1
如果有小数则保留3位小数。

@echo off
:action
set /p input="(1-99):"
if "%input%"=="" goto :action
set /a a=0,n=0
:a
set /a a+=1,a1=0
:a1
set /a a1+=1,test=(n*10+a1)*(n*10+a1)
if %test% equ %input% (echo %a1% &pause &goto :end)
if %test% lss %input% (goto :a1)
set /a n=n*10+a1-1,input*=100
if %a% lss 4 goto :a
echo %n:~0,1%.%n:~1%
pause>nul
:end
echo,&set input=
goto :action



[ Last edited by 523066680 on 2008-9-21 at 07:29 AM ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
moniuming +8 2008-09-20 19:24
lxmxn +8 2008-09-21 09:01
2 发表于 2008-09-21 09:08 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
不错,已经收藏到置顶的 批处理室经典帖子分类索引 中了。
3 发表于 2008-09-21 09:12 ·  中国 广东 江门 电信
中级用户
★★
积分 338
发帖 175
注册 2007-10-21 15:30
UID 100351
性别 男
状态 离线
占个位置...
这次的效率快很多了
4 发表于 2008-09-21 09:18 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
原理:一位位数进行对比
比如输入2
0*0=0
1*1=1
2*2=4 4>2 所以第一位数取1
然后1.1*1.1
1.2*1.2
1.3*1.3……
1.4*1.4
1.5*1.5 = 2.25 >2 所以取1.4
以此类推
大家疑问了 批处理没小数啊
那就用整数计算 算出来后加个点给它
5 发表于 2008-09-21 09:25 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
感谢各位的支持!我爱cn-dos!
论坛跳转: