算法分析 以27和20为例,首先求出a和b的差,这个差先由从1开始的自然数相加填补,
也就是说27和20差7,先由1+2+3=6填补,操作了3次,然后还差1,由a加4,b加5填补
操作了2次,因为对a和b分别操作了1次,所以要乘以2,因此有公式count=i-1+(c-n)*2
按照你的要求编写的完整的Python程序如下
a,b=map(int,input('请输入a,b的值(中间用空格隔开):').split())
if a>b:
c=a-b
else:
c=b-a
n=0
i=0
while n<=c:
i+=1
n=n+i
n=n-i
count=i-1+(c-n)*2
print("使%d和%d相等的最小操作次数为%d" % (a,b,count))
源代码(注意源代码的缩进)
你好,配上图片举例说明了下