第一题:有趣的数字谜题

题目:一个三位数,它的百位和十位数字之和是8,个位数字是百位数字的2倍。请问这个三位数是多少?

解答思路:

  1. 设这个三位数为ABC,其中A为百位数字,B为十位数字,C为个位数字。
  2. 根据题意,得到两个等式:A + B = 8,C = 2A。
  3. 由于A、B、C都是数字,因此A的取值范围为1-8。
  4. 逐个尝试A的取值,找到满足条件的ABC。

代码实现:

for A in range(1, 9):
    B = 8 - A
    C = 2 * A
    if C < 10:
        print(f"{A}{B}{C}")

第二题:巧妙的算术游戏

题目:有四个数:2、4、6、8,通过加减乘除运算,得到结果为100。请写出一种可能的解题方法。

解答思路:

  1. 首先考虑乘法和除法,因为这两个运算能够更快地得到较大的数。
  2. 考虑到2和4、6和8可以分别组成2个因数相乘的形式,尝试将它们相乘。
  3. 然后考虑如何通过加减运算得到100。

代码实现:

for i in range(1, 5):
    for j in range(i, 5):
        for k in range(j, 5):
            for l in range(k, 5):
                result = 2 * i * 4 * j * 6 * k * 8 * l
                if result == 100:
                    print(f"2 * {i} * 4 * {j} * 6 * {k} * 8 * {l} = {result}")

第三题:有趣的数列

题目:已知数列1,1,2,3,5,8,13,21,…,请问下一个数是多少?

解答思路:

  1. 这是一个著名的斐波那契数列,每个数都是前两个数的和。
  2. 通过观察数列,可以发现第n个数等于第n-1个数加上第n-2个数。
  3. 使用递推公式求解。

代码实现:

def fibonacci(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(10))  # 输出第10个数

第四题:有趣的面积问题

题目:一个长方形的长是10cm,宽是5cm,请计算它的对角线长度。

解答思路:

  1. 长方形的对角线长度可以通过勾股定理求解。
  2. 勾股定理公式为:a² + b² = c²,其中a和b为直角三角形的两条直角边,c为斜边。
  3. 将长方形的长和宽代入公式,求解对角线长度。

代码实现:

import math

def calculate_diagonal(length, width):
    return math.sqrt(length**2 + width**2)

print(calculate_diagonal(10, 5))

第五题:有趣的日期问题

题目:假设今天是2023年1月1日,请问100天后是哪一天?

解答思路:

  1. 首先确定100天后的年份和月份。
  2. 考虑到闰年的影响,需要判断100天后是否为闰年。
  3. 如果不是闰年,则直接加上100天;如果是闰年,则判断2月有多少天,再进行计算。

代码实现:

def days_in_month(month, year):
    if month in [1, 3, 5, 7, 8, 10, 12]:
        return 31
    elif month in [4, 6, 9, 11]:
        return 30
    elif month == 2:
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            return 29
        else:
            return 28

def calculate_date(days):
    month = 1
    year = 2023
    day = 1

    while days > 0:
        days_in_current_month = days_in_month(month, year)
        if day + days <= days_in_current_month:
            day += days
            days = 0
        else:
            days -= (days_in_current_month - day)
            day = 1
            month += 1
            if month > 12:
                month = 1
                year += 1

    return f"{year}年{month}月{day}日"

print(calculate_date(100))