标题: [其他] 请编程解决已知绝对值关系,求a和b的值 [打印本页]
作者: netdzb 时间: 2021-2-28 14:54 标题: 请编程解决已知绝对值关系,求a和b的值
已知 a的绝对值等于5,b的绝对值等于3,
(a - b)的绝对值等于(b-a), 请编程解决
求a和b的值。
掌握python的朋友可以试一下。
作者: doub07 时间: 2021-2-28 16:02
回复 1# netdzb
for a in [-5, 5]:
for b in [-3, 3]:
if abs(a-b) == b-a:
print(f"a={a}",f"b={b}")
作者: cutebe 时间: 2021-2-28 16:24
- @echo off
- echo 已知:
- echo ^|a^|=5,^|b^|=3;^|a-b^|=b-a
- echo 求:a=?,b=?
- echo/
- echo 答:
-
- ::绝对值公式引用:
- ::qzwqzw@cn-dos 2007-1-17
- ::a取值的上下限各缩小一半 //说实话,这句意思没能理解
- ::set /a b=(a*2+1)%%2*a //求绝对值公式
-
- setlocal enableDelayedExpansion
- ::已知
- set/a _0_=0,a1=5,b1=3
- set a_b1=b-a
-
- ::a、b的另一个可能值
- set/a a2=_0_-a1,b2=_0_-b1
-
- ::求解
- for %%a in (%a1% %a2%)do (
- for %%b in (%b1% %b2%)do (
- set/a "a_b=%%a-%%b,b_a=%%b-%%a,a_b1=(a_b*2+1)%%2*a_b"
- if !a_b1! equ !b_a! echo a:%%a b:%%b
- )
- )
- pause
复制代码
作者: 路过 时间: 2021-2-28 18:31
- @echo off
- ::利用绝对值的定义构造的函数abs,#为算式,结果为变量jdz
- set "abs=set/a jdz=#&if !jdz! leq 0 set/a jdz=-jdz"
- setlocal enabledelayedexpansion
-
- for %%a in (5 -5) do (
- for %%b in (3 -3) do (
- set/a a=%%a,b=%%b,w=b-a
- %abs:#=a-b%
- if !jdz!==!w! (echo;a:%%a b:%%b)
- )
- )
- pause
- exit
复制代码
作者: terse 时间: 2021-2-28 19:09
凑个热闹- @echo off
- setlocal enabledelayedexpansion
- for %%a in (5 -5) do (
- for %%b in (3 -3) do (
- set/a "a=%%a-%%b,b=%%b-%%a,a=(a ^ (a >> 31)) - (a >> 31)"
- if !a! equ !b! echo a=%%a b=%%b
- )
- )
- pause
复制代码
作者: netdzb 时间: 2021-3-1 09:44
回复 5# terse
批处理的绝对值是如何计算的?
作者: terse 时间: 2021-3-1 18:59
回复 6# netdzb
这是位运算- set x=-5
- set/a "y=x >> 31, x=(x ^ y) - y"
- echo;%x%
复制代码
作者: netdzb 时间: 2021-3-1 20:42
回复 7# terse
^这个是什么意思,转义符,续行符,没看懂。
作者: terse 时间: 2021-3-2 04:52
回复 8# netdzb
”^“ 异或运算符 “>>” 右移
set /a 了解一下
作者: 老刘1号 时间: 2021-3-2 19:34
凑个热闹,prolog- :- initialization(main).
- main :- a(A), b(B), C is abs(A - B), C #= B - A, write('A='), write(A), write(' B='), write(B), nl, fail.
- a(5).
- a(-5).
- b(3).
- b(-3).
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |