返回列表 发帖
@echo off&setlocal enabledelayedexpansion
for /l %%a in (8 -1 0) do (
set /a "tmp=1<<%%a"
set "str=!str!*(^!^!(!tmp!>>m)+^!(!tmp!>>m)*m)"
)
for /l %%a in (1 1 9) do (
set /a m=%%a,"n=!str:~1!"
echo !n!
)
pauseCOPY

TOP

呵呵,版主真的有心了

但是个人感觉这怎么越搞越复杂了

请恕个人理解能力有限
一路飘过的鸟~~~

TOP

确实越写月复杂。

TOP

本帖最后由 mxxcgzxxx 于 2011-7-1 20:49 编辑

我也想找到通用编码,不过试了下没发现,可能是能力有限或转不过弯来,
你们来找找规律,
本人认为还是把规律放在1,2,3内比较靠谱
比如7=1+2*3=2*2*2-1
能有一个1,2,3的开方规律就好了,看样子要用CALL套
@echo off
:1
set/p p=
:2
::平方原理
set /a a*=(a=p)
echo %a%
:3
::3次方
set /a a*=(a=p)*a
echo %a%
:4
::2次方的平方
set /a a*=(a*=(a=p))
echo %a%
:5
::2次方的平方+1
set /a a*=(a*=(a=p))*p
echo %a%
:6
::2次方的3次方
set /a a*=(a*=(a=p))*a
echo %a%
:7
::4次方的平方-1
set /a a*=(a*=(a*=(a=p)))/p
echo %a%
:8
::4次方的平方
set /a a*=(a*=(a*=(a=p)))
echo %a%
:9
::3次方的平方
set /a a*=(a*=(a=p)*a)
echo %a%
pause>nul
:10
::3次方的平方+1
set /a a*=(a*=(a=p)*a)*p
echo %a%
:11
::4次方的3次方-1
set /a a*=(a*=(a=p)*a)*a/p
echo %a%
:12
::4次方的3次方
set /a a*=(a*=(a=p)*a)*a
echo %a%
pause>nul
goto :1COPY
另PS:意义本身不大啦,因为算不了多少个数的幂次方,因为批处理的计算能力有限,只是一个思路的练习
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

确实有点复杂,但是我的目的是写成函数,以便节省循环中计算N的N次方时的耗时,所以单次运行时是没有什么优势的

TOP

本帖最后由 mxxcgzxxx 于 2011-7-1 23:26 编辑

只能测试到9所以还不够完善,超出的数太大了无法验证
只要分1,2就行了,原先的1,2,3想法有错,3=2+1
这样就能将规律统一了
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表