**********************************************************************************
【程序1】
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
**********************************************************************************
- @echo off
- for %%i in (1 2 3 4) do (
- for %%j in (1 2 3 4) do (
- if %%j neq %%i (
- for %%k in (1 2 3 4) do (
- if %%k neq %%i (
- if %%k neq %%j (echo %%i%%j%%k)
- )
- )
- )
- )
- )
- pause>nul
复制代码
**********************************************************************************
【程序2】
输入某年某月某日,判断这一天是这一年的第几天?
**********************************************************************************
- @echo off
- set days=0&setlocal enabledelayedexpansion
- set /p date=请输入日期(日期格式 xxxx.xx.xx):
- for /f "tokens=1,2,3 delims=./ " %%i in ("%date%") do (
- set "year=%%i"&set "month=%%j"&set "day=%%k"
- set "run=%%j"
- )
- for %%l in (0 31 28 31 30 31 30 31 31 30 31 30 31) do (
- set /a days=days+%%l
- set /a month=month-1
- if !month! equ 0 (goto a)
- )
- :a
- set /a days=%day%+!days!
- if %run% equ 1 (goto b)
- set /a b=year%%400
- set /a c=year%%4
- set /a d=year%%100
- if %b% equ 0 (set /a days=1+days&goto b)
- if %c% equ 0 (
- if %d% neq 0 (
- set /a days=1+days
- )
- )
- :b
- echo %date% 是 %year% 年的第 %days% 天
- pause>nul
复制代码
**********************************************************************************
【程序3】
输出9*9口诀。
**********************************************************************************
- @echo off&set n=0
- for /l %%i in (1 1 9) do (
- set a=%%i
- for /l %%j in (1 1 9) do (
- set b=%%j
- call :a
- )
- echo.
- )
- pause>nul
- :a
- if %b% gtr %a% (goto :eof)
- set /a num=a*b
- set /p "=%a%x%b% = %num% " <nul
- set /a n=n+1
- goto :eof
复制代码
**********************************************************************************
【程序4】
输出101-200之间所有的素数。
**********************************************************************************
- @echo off
- for /l %%i in (101 1 200) do (
- set a=%%i &set n=0
- call :calc
- )
- pause>nul
- :calc
- for /l %%j in (2 1 15) do (
- set b=%%j
- call :op
- )
- if %n% equ 0 (echo %a%)
- goto :eof
- :op
- set /a yu=a%%b
- if %yu% equ 0 (set n=1)
- goto :eof
复制代码
**********************************************************************************
【程序5】
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3
**********************************************************************************
- @echo off
- for /l %%i in (1 1 9) do (
- set a=%%i
- for /l %%j in (0 1 9) do (
- set b=%%j
- for /l %%k in (0 1 9) do (
- set c=%%k
- set num=%%i%%j%%k
- call :calc
- )
- )
- )
- pause>nul
- :calc
- set /a sum=a*a*a+b*b*b+c*c*c
- if %num% equ %sum% (echo %num%)
- goto :eof
复制代码
**********************************************************************************
【程序6】
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
**********************************************************************************
- @echo off
- set n=1
- set /p num=请输入一个数字:
- set /p "=%num%=" <nul
- :start
- for /l %%i in (2 1 %num%) do (
- set a=%%i
- call :sp
- )
- pause>nul
- :sp
- set /a yu=num%%a
- set /a sh=num/a
- if %yu% equ 0 (
- set /a num=sh
- if %n% neq 1 (set /p "=*" <nul)
- set /p "=%a%" <nul & set n=0
- goto start
- )
复制代码
**********************************************************************************
【程序7】
输入两个正整数m和n,求其最大公约数和最小公倍数。
**********************************************************************************
- @echo off
- set /p n=请输入数字 n=
- set /p m=请输入数字 m=
- if %m% gtr %n% (
- set /a min=n & set /a max=m
- ) else (
- set /a min=m & set /a max=n
- )
- for /l %%i in (%min% -1 1) do (
- set a=%%i
- call :sp
- )
- :an
- echo 最大公约数是 %a%
- echo 最小公倍数是 %b%
- pause>nul &exit
- :sp
- set /a y1=n%%a
- set /a y2=m%%a
- set /a s=max%%min
- if %s% equ 0 (
- set /a b=max ) else (
- set /a b=max*min
- )
- if %y1% equ 0 (
- if %y2% equ 0 (
- if %y1% equ %y2% (goto an)
- )
- )
复制代码
[ 本帖最后由 wangshuping42 于 2009-9-30 14:36 编辑 ] |