『楼 主』:
[原创]不限制位数,10进制内同进制的两个数之间相乘
写别的批处理,过程产生作品之一 。打稿纸在bathome的水区 和cn-dos的日志里
功能:不限制位数两个数之间相乘
输入格式如 10 20
可以选择10以内的进制 数 进行乘法运算 如 100 11 2 ,其中2表示2进制
@echo off &setlocal enabledelayedexpansion
title code by 523066680
set /p inp="input two numbers : "
call :naxnb %inp%
pause>nul
exit
:naxnb
set numa=%1
set numb=%2
if "%3"=="" (set /a delna=10,delnb=9) else (set /a delna=%3,delnb=%3-1)
set /a la=0,lpr=-1
:la
set /a la+=1,lb=0,lpr+=1,lp=lpr
:lb
set /a lb+=1,lp+=1,tlpa=lp,tlpb=lp+1
:::::::::::::::::::::::::
set /a cup%lp%+=!numa:~-%la%,1! * !numb:~-%lb%,1!
:cuplp
set /a cup%tlpb%+=cup%tlpa%/delna,cup%tlpa%=cup%tlpa%%%delna
if !cup%tlpb%! gtr %delnb% (
set /a tlpa+=1,tlpb=tlpa+1
goto :cuplp
) else (if !cup%tlpb%! equ 0 set /a tlpb-=1)
::::::::::::::::::::::::::
if not "!numb:~%lb%!"=="" (goto :lb)
if not "!numa:~%la%!"=="" (goto :la)
for /l %%a in (%tlpb%,-1,1) do set /p=!cup%%a!<nul [ Last edited by 523066680 on 2009-5-1 at 23:09 ]
此帖被 +13 点积分 点击查看详情 评分人:【 BC 】 | 分数: +4 | 时间:2009-2-21 18:58 | 评分人:【 HAT 】 | 分数: +4 | 时间:2009-2-21 19:15 | 评分人:【 moniuming 】 | 分数: +5 | 时间:2009-2-21 20:22 |
|
|