Day10—能被3、5、7整除的正整数及九九乘法表

1.九九乘法表

<!--
 * @Author: your name
 * @Date: 2021-06-07 09:54:33
 * @LastEditTime: 2021-06-07 10:06:59
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \程序\关卡十一\九九乘法表.html
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python中的datetime库来实现该功能。具体步骤如下: 1. 导入datetime库 ```python import datetime ``` 2. 构造日期对象 ```python date = datetime.date(year, month, day) ``` 3. 获取该日期是星期几 ```python weekday = date.isoweekday() ``` 4. 将星期几转换为1-7的整数 ```python if weekday == 7: return 1 else: return weekday + 1 ``` 完整代码如下: ```python import datetime def main(year, month, day): date = datetime.date(year, month, day) weekday = date.isoweekday() if weekday == 7: return 1 else: return weekday + 1 ``` 调用示例: ```python print(main(202, 10, 5)) # 输出1 ``` ### 回答2: 这道题需要用到中国剩余定理(CRT)和基姆拉尔森计算公式。 首先,我们可以根据基姆拉尔森计算公式计算出这一天是星期几。这个公式是这样的: $$ W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)\%7 $$ 其中,$d$表示日,$m$表示月,$y$表示年。 计算出W之后,我们就能够将题目转化为求解一个同余方程组: $$ \left\{ \begin{aligned} x&\equiv W\mod 7\\ x&\equiv 1\mod 7 \end{aligned} \right. $$ 这是一个二元一次同余方程组,可以用中国剩余定理求解。这样我们就可以得到最终的答案。 具体地,我们可以使用Python内置的math库中的相关函数实现。代码如下: ```python import math def main(year, month, day): W = (day + 2*month + 3*(month+1)//5 + year + year//4 - year//100 + year//400 + 1) % 7 x, _ = math.gcdext(7, 1) ans = (1 - x*W*7) % (7*1) return ans+1 ``` 其中,gcdext是math库中的拓展欧几里得算法函数,可以计算同余方程的解。 ### 回答3: 这是一个求解日期对应星期的问题。需要用到Python中的datetime库,该库包含了日期、时间的处理函数和类。 首先需要将输入的年、月、日转化成一个datetime.date类型的变量,然后通过weekday()函数获取该日期所在的星期数,即可得到结果。 下面是具体的代码实现: ```python import datetime def main(year, month, day): date = datetime.date(year, month, day) week_day = date.weekday() + 1 # 将星期数转化为1~7 return week_day ``` 该函数使用datetime.date()函数将输入的年、月、日转化成datetime.date类型的变量date,然后使用date.weekday()获取该日期所在的星期数,再将星期数转化为1~7的形式返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值