这个方法好啊~以游戏的方式.
为支持楼主,我先来解第一道题吧。- @echo off&setlocal enabledelayedexpansion
- echo 2
- for /l %%a in (3 2 100) do set/a n=2,m=%%a&call :lp %%a
- pause>nul&exit/b
- :lp
- set/a mod=m%%n
- if %mod% equ 0 (
- set "res=%res%%n%*"
- set/a m/=n
- goto lp
- ) else (
- set/a n+=1
- if !n! leq !m! goto lp
- )
- if "!res:~,-1!" equ "%1" echo !res:~,-1!
- set "res="
复制代码 效率不怎么样,因为是先分解出每个数的质因数,最后再作比较,期待好的方案。
昨晚思维定向的厉害,简化:- @echo off&setlocal enabledelayedexpansion
- echo 2
- for /l %%a in (3 2 100) do (
- set/a m=%%a-1,a=0
- for /l %%i in (2 1 !m!) do (
- set/a n=%%a%%%%i
- if !n! equ 0 set a=1
- )
- if !a! equ 0 echo %%a
- )
- pause
复制代码 第2题:
列出100以内所有能被3整除的偶数。
[ 本帖最后由 pusofalse 于 2008-9-18 02:50 编辑 ] |