标题: [其他] 批处理可不可以作所有数学运算? [打印本页]
作者: nnnn111 时间: 2010-8-24 16:50 标题: 批处理可不可以作所有数学运算?
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
作者: zcydez 时间: 2010-8-24 18:01
开平方根……
有哪位高手
作者: TX_kakashi 时间: 2010-8-24 22:38
我想到的是set num=0,然后一点点set /a num+=1,直到得到正确的结果。>_<
作者: Batcher 时间: 2010-8-25 00:19 标题: 回复 3楼 的帖子
可以先google一下有没有好的数学公式
作者: terse 时间: 2010-8-25 02:07
效率不怎么样- @echo off&setlocal enabledelayedexpansion
- for /l %%i in (1 1 1000) do set /a n=%%i*%%i,_!n!=n
- for /l %%i in (1 1 %n%) do (
- set /a i=%%i+100,j=i+168
- if defined _!i! if defined _!j! echo %%i
- )
- pause
复制代码
作者: qq106942397 时间: 2010-8-25 19:45
答案是:156- @echo off&setlocal enabledelayedexpansion
- (for /l %%a in (10 1 300) do (set /a X=%%a*%%a
- echo.%%a^^=!X!
- ))>X.txt
- for /f "tokens=2 delims==" %%a in (X.txt) do (
- set /a Z=%%a-100
- set /a Z=!Z!+168
- for /f "tokens=2 delims==" %%b in ('findstr /X ".*=!Z!" X.txt') do (
- set /a Z=%%b-168
- echo..!Z!+100=%%a; .!Z!+168^=%%b
- findstr /X ".*=%%a .*=%%b" X.txt
- ))
- pause
复制代码
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
我只是理解?+100和?+168分别加...
[ 本帖最后由 qq106942397 于 2010-8-26 09:39 编辑 ]
作者: sgaizxt001 时间: 2010-8-25 20:34
terse,你的效率不高的原因可能是定义的变量太多了原因吧?如果缩小一点范围的话效率应该就提高了
6楼明显不对,156+100+168=424
作者: sleepinglord 时间: 2010-8-27 15:13
一个数+100是a^2,+268是b^2,用b^2 - a^2 = 168;
(b+a)(b-a) = 168;因为b+a和b-a的奇偶性必然相同,因此可以知道a,b都可以被2整除
设a' = a/2; b' = b/2,则(a‘+b')(b'-a') = 42;
同理,a'+b'和b'-a'的奇偶性也相同,而42能被2整除但不能被4整除,因此无解!
作者: slore 时间: 2010-8-27 21:24
楼上分析的不错,可惜最后推导错了,导致与正确结果无缘,可惜啊。
这个数为:
21
或
261
或
1581
[ 本帖最后由 slore 于 2010-8-28 09:35 编辑 ]
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |