马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
水仙花数
- 水仙花数
- info = 3
- while info:
- # 用户输入数字
- try:
- print(f"请输入数字,您有{info}次机会!!")
- num = int(input("请输入100-999的数字:"))
- if num<100 or num>999:
- info -= 1
- print(f"请输入合法数字!!!您还有{info}次机会!!")
- continue
- b = num //100 # 取百位
- s = num //10%10 # 取十位
- g = num % 10 # 取个位
- if b**3+s**3+g**3 == num:
- print(f"{num}:这个数是水仙花数")
- break
- else:
- print(f"{num}:这个数不是水仙花数")
- info -= 1
- except:
- print(f"请输入数字!!!您还有{info}次机会!!")
- info -= 1
复制代码 插入排序
- 插入排序
- # 定义列表
- nums = [87,38,77,2,33,98,73,22,12]
- for i in range(len(nums)):
- # 判断 <右边的元素> 是否小于 <左边元素>
- # 如果 小于,则将两个元素交换位置,就变成“小在左,大在右了”
- while nums[i] < nums[i-1] and i>=1:
- nums[i],nums[i-1] = nums[i-1],nums[i]
- i -= 1
复制代码 冒泡排序
- 冒泡排序
- # 定义列表
- nums = [87,99,17,2,33,68,73,22,12]
- # 遍历的次数是列表长度 减一
- # 相当于要冒泡几轮
- for i in range(len(nums)-1):
- # 每轮冒泡的次数,
- # -i 是因为 :上轮将大的数已经排在后面,所以后面的就不再参与
- for j in range(len(nums)-1-i):
- if nums[j] > nums[j+1] :
- # 比较左边 ‘nums[j]’ 和右边 'nums[j+1]' 的元素 换位
- nums[j],nums[j+1] = nums[j+1],nums[j]
- print(nums)
复制代码 百鸡百钱
- 百鸡百钱
- 题干:公5,母3,小1/3
- 公鸡x 母鸡y 小鸡z 加起来要 100 只
- 5x+3y+z/3=100
- ---------------------------------------
- count = 0
- for x in range(1,20):
- # 因为公鸡数量不会超过20
- for y in range(1,33):
- # 母鸡数量不超过33
- # 小鸡的数量
- z = 100 - x - y
- if z != 0 and 5*x+3*y+z/3 == 100:
- count += 1 # 每次方法记录加一
- print(f"第{count}种方法:{x}只公鸡,{y}只母鸡,{z}只小鸡")
复制代码 最小公倍数
- 最小公倍数
- num1 = int(input("请输入数字1:"))
- num2 = int(input("请输入数字2:"))
- if num1 < num2 :
- num1,num2 = num2,num1
- else:
- num1,num2 = num1,num2
- for i in range(num1,num1*num2+1):
- if i%num1==0 and i%num2==0:
- print(f"{i}是{num1}和{num2}的最小公倍数")
复制代码 二分查找
首要条件:被查询的序列,必须是有序的。
target : 目标- target = n
- left = 0 # 左下标/索引
- right = len(lis)-1 # 右下标/索引
- while left <= right:
- # 找到列表中间索引
- mid = (left+right)//2
- if lis[mid] > target:
- # 如果中间值大于目标值,说明目标值在中间值左边
- # 所以需要修改右下标。
- right = mid-1
- elif lis[mid] < target:
- # 如果中间值小于目标值,说明目标值在中间值右边
- # 所以需要修改左下标。
- left = mid + 1
- else:
- print(f"该数字的下标为{mid}")
- break
- else:
- print("该目标不在序列中……")
复制代码 猜年龄-妹妹几岁了
小明带两个妹妹参加元宵灯会。别人问她们多大了,他们调皮地说:“我们两个的年龄之积是年龄之和的六倍。”小明又补充说:“他们可不是双胞胎,年龄差也不超过8岁。”请写出,较小妹妹的年龄?- 实现思路:
- 1、两个妹妹不是双胞胎,年纪肯定不一样
- 2、年龄积是年龄和的六倍
复制代码 [code]for i in range(1,100): # 假设姐姐的年龄 for j in range(1,i): # 假设妹妹的年龄 if i*j==6*(i+j) and i-j |