本文主要是介绍求使x平方各位互不相同的九位数x(python)实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
'''
求x,使得x的平方为一个各个位数字互不相同的9位数字。算法设计:由x的平方为一个九位数可以得出,x的取值范围在10000--32000之间1、设置10个元素的状态数组p,记录数字0--9在x的平方中出现的情况,数组元素都赋予初值1,表示数字0--9没有被使用过2、对尝试的每一个数x,求x*x,并取其各个位数字,数字作为数组的下标,若对应元素为1,则改数字第一次出现,将对应元素赋值为0,表示改数字已经出现过一次,否则,若对应元素为0,则说明由重复数字,结束这次尝试3、当状态数组p中9个元素都都为0是,则找到了问题的解,但这样判定由有解,需要扫描一遍数组p,为避免这个操作,设置计数器k,在取x*x各个位数字的过程中记录不同的数字的个数,当k=9时,就找到了问题的解
'''def main():p = []for i in range(0, 10):p.append(1)num = 0for x in range(10000,32000):for i in range(0,10):p[i] = 1y1 = x**2y2 = y1k = 0 #计数器,若k=9 则说明此数符合条件for i in range(0,10):t = y2 % 10y2 = y2 // 10if p[t] == 1:k +=1p[t] = 0else:breakif k == 9:num +=1print("第 %d 组:
这篇关于求使x平方各位互不相同的九位数x(python)实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!