zoukankan      html  css  js  c++  java
  • 测开之路十三:思维逻辑题

    count = 0
    for i in range(1,5): # 百位
      for j in range(1,5): # 十位
        for h in range(1,5): # 个位
          if i==j or j==h or i==h:
            continue
          count = count + 1
          print(f'{i}{j}{h}')
    print(count)

    打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方

    或者

    for b in range(1,10): # 百位
      for s in range(0,10): # 十位
        for g in range(0, 10): # 个位
          shu = 100*b + 10*s + g
          data = pow(b,3) + pow(s,3) + pow(g,3)
          if shu==data:
            print(shu)

    求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

     

    num = input('输入1~9的数字:')
    repeat = int(input('输入要循环的次数:'))
    data = []
    for i in range(1, repeat+1):
      data.append(i*num)
    print(data)

    猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少

    def day(n):
      if n==1:
        return 1
      return 2*(day(n-1)+1)
    print(day(10))

    报数
    有M个小朋友围成一圈,从1开始报数,报的N的小朋友出圈。
    问题:最后剩下的小朋友是几号?

     

    m = int(input("几个小朋友:"))
    n = int(input("报几出圈:"))
    children = [i+1 for i in range(m)] # 把小朋友转成列表
    current = 1 # 从1开始报数
    while len(children) != 1:
      child = children.pop(0) # 把当前报数的小朋友拿出来
      if current == n : # 如果把的是n,则重新回到1开始报数,且不回队
        current = 1
      else:
        current += 1
      children.append(children.pop(0)) # 如果报的不是n,回到队尾
    print(child)

    字符串转数字
    不要调用int转换函数。按位读取字符串里的字符进行处理将字符串转化为整数,给定的输入一定是合法输入不包含非法字符,字符串头尾没有空格,考虑字符串开头可能有正负号

    data = '-1425234534'
    mapping = {'0': 0,'1': 1,'2': 2,'3': 3,'4': 4,'5': 5,'6': 6,'7': 7,'8': 8,'9': 9}

    # 要实现的函数
    def to_int(data):
      total = 0
      # data[::-1]是翻转字符串,使用enumerate获取字符串的索引与值
      for i, v in enumerate(data[::-1]):
        # 排除正好与符号,这里会引起错误,计算出数值后处理字符串。
        if v != '-' and v != '+':
          # mapping[v]是字符对应的数值,pow(10, i)是数字所在位数的权重
          total += mapping[v] * pow(10, i)
      # 如果是负数,这里转成负数
      if data[0] == '-':
        total = -total
      return total
    print(to_int(data))
    print(type(to_int(data)))

    跑马灯
    大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制。(开关按一下,灯亮,再按一下灯灭。开关的编号与被控制的灯相同。)开始时,灯是全灭的。现在按照以下规则按动开关。第一次,将所有的灯点亮。第二次,将所有2的倍数的开关按一下。第三次,将所有3的倍数的开关按一下。以此类推。第N次,将所有N的倍数的开关按一下。问第100次按完以后,大厅里还有几盏灯是亮的

     

    # True代表灯亮,False代表灯灭
    lamp = [False for _ in range(100)]
    for n in range(1,101): # n代表第n次按开关
      for i in range(1,101): # i 代表第i盏灯的开关
        if i%n==0: # 如果i是n的倍数,则i代表的灯转换状态
          lamp[i-1] = not lamp[i-1]
    for i,v in enumerate(lamp):
      if v:
        print(i+1,v)

    斐波那契数列,求第n位是多少

    def fib(n):
      if n == 0:
        return 0
      if n == 1:
        return 1
      return fib(n-1)+fib(n-2)
    print(fib(6))

    def fib1(n):
      data = [0,1]
      for i in range(2,n+1):
        data.append(data[i-1]+data[i-2])
      return data[n]
    print(fib1(6))

    def fib2(n):
      if n==0 or n==1:
        return n
      x,y = 0,1
      for i in range(2, n+1):
        x,y = y,x+y
      return y
    print(fib2(6))

  • 相关阅读:
    maven加载jar包配置
    JavaScript基础博客
    angularjs1 实现地图添加自定义控件(搜索功能)及事件
    AngularJS之Directive,scope,$parse
    HTML5 File详解
    angularjs上传图片
    input上传按钮美化
    AngularJs表单验证
    作用域与闭包
    理解JavaScript中的作用域和上下文
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10753910.html
Copyright © 2011-2022 走看看