【Python训练营】基础题目刷刷刷

是Dream呀 发表于 2022/05/04 00:06:50 2022/05/04
【摘要】 📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅Python领域优质创作者,欢迎大家找我合作学习(文末有VX...

📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅Python领域优质创作者,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨

前言:【Python训练营】是针对Python语言学习所打造的一场刷题狂欢party! 对基础知识把握不牢固的话,欢迎参考此套课程:Python公开课 搭配使用最佳嗷~喜欢的话就抓紧订阅起来吧!🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡

1.矩形切割

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。
例如,对于一块两边分别为 5 和 3 的材料,小明会依次切出 3×3、2×2、1×1、1×1 共 4 个正方形。

现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会切出多少个正方形?

源码分析

在这里插入图片描述
1.暴力数数法

import os
import sys

# 请在此输入您的代码
print(21)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

2.正规编程法

import os
import sys

# 请在此输入您的代码
wide = 2019
high = 324
count = 0 # 计数
while wide != high:
    wide = wide - high
    if wide < high:
        wide, high= high, wide # wide, high交换
    count += 1
print(count + 1)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.相乘

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝发现,他将 1 至 1000000007 之间的不同的数与 2021 相乘后再求除以 1000000007 的余数,会得到不同的数。 小蓝想知道,能不能在 1 至 1000000007 之间找到一个数,与 2021 相乘后 再除以 1000000007后的余数为 99999999。如果存在,请在答案中提交这个数; 如果不存在,请在答案中提交 0。

源码分析

# @Time : 2022/3/7 19:46
# @Author : 是Dream呀
# @File : 相乘.py
import os
import sys
#此题乃反向解法,通过假定知道商,进行反向替换
# 请在此输入您的代码
for i in range(1,10000):
    if (i*1000000007+999999999) % 2021 == 0:
        print(int((i*1000000007+999999999) / 2021))
        break

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.约数个数

题目描述

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
1200000有多少个约数(只计算正约数)。

源码分析

1.正常思路做法:

# @Time : 2022/3/9 9:58
# @Author : 是Dream呀
# @File : 约数个数.py
import os
import sys

# 请在此输入您的代码
import math
num = 1200000
count = 0
for i in range(1, num+1):
  if num % i == 0:
    count += 1
print(count)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.利用math函数开平方,然后进一步节省时间,要记住右边要进行int取整,让后再+1

import math
total = 0
for i in range(1,int(math.sqrt(1200000))+1):
    if 1200000 % i == 0:
        total += 1
print(2*total)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

🏅今天是我在Python训练营的第 1 天,希望每天都能见到最棒的你🏅

🌟 The best time to plant a tree is ten years ago, followed by now! 🌟

🌲🌲🌲 最后,作者很感谢能够阅读到这里的读者。如果看完觉得好的话,还请轻轻点一下赞或者分享给更多的人,你们的鼓励就是作者继续行文的动力。
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了,我们下期再见~
在这里插入图片描述
在这里插入图片描述

文章来源: xuyipeng.blog.csdn.net,作者:是Dream呀,版权归原作者所有,如需转载,请联系作者。

原文链接:xuyipeng.blog.csdn.net/article/details/124554498

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。