9个可以用Python快速解答的有趣数学题目
off999 2024-12-11 16:25 18 浏览 0 评论
今天用Python讲数学题
题一
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
解题思路:先组成所有的排列,再筛选出满足要求的数。
程序源代码:
arr=[]
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if (i != k) and (i != j) and (j != k):
s=i*100+j*10+k
arr.append(s)
print(arr)
print(len(arr))运行结果为:
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
24题二
一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
解题思路:假设在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。
程序源代码:
import math
for i in range(10000):
x = int(math.sqrt(i + 100)) #注意一定要int转化为整型值
y = int(math.sqrt(i + 268))
if(x * x == i + 100) and (y * y == i + 268):
print (i)运行结果为:
21
261
1581题三
输入某年某月某日,判断这一天是这一年的第几天?
解题思路:以3月10日为例,应该先把前两个月的天数加起来,然后再加上10天即本年的第几天;闰年且输入月份大于3时需考虑多加一天。
程序源代码:
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 < month <= 12:
sum = months[month - 1]
else:
print ('data error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
sum += 1
print ('it is the %dth day.' % sum)运行结果为:
year:
2023
month:
3
day:
10
it is the 69th day.题四
打印出所有的"水仙花数"("水仙花数"是指一个三位数,其各位数字立方和等于该数本身)
解题思路:利用for循环控制100-999个数,每个数解析出个位,十位,百位,再判断是否满足等式。
程序源代码:
for n in range(100,1000):
i = n // 100
j = int(n / 10 % 10)
k = n % 10
# print(i, j, k, sep='|')
if n == i ** 3 + j ** 3 + k ** 3:
print(n)运行结果为:
153
370
371
407题五
将一个正整数分解质因数。如:输入100,打印出90=2*2*5*5
解题思路:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可;
(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步;
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
程序源代码:
from sys import stdout
n = int(input("input number:\n"))
print ("n = %d" % n)
for i in range(2,n + 1):
while n != i:
if n % i == 0:
stdout.write(str(i))
stdout.write("*")
n = n / i
else:
break
print ("%d" % n)运行结果为:
input number:
100
n = 100
2*2*5*5题六
求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字
解题思路:例如2+22+222+2222+22222(此时共有5个数相加);几个数相加可以由键盘控制,每次后一个数相对于前一个数的增长规律。
程序源代码:
Tn = 0
Sn = []
n = int(input('n = :\n'))
a = int(input('a = :\n'))
for count in range(n):
Tn = Tn + a
a = a * 10
Sn.append(Tn)
print (Tn)
Sn=sum(Sn)
print (Sn)运行结果为:
n = :
5
a = :
2
2
22
222
2222
22222
24690题七
一个数如果恰好等于它的因子之和,这个数就称为"完数",找出1000以内的完数。
解题思路:完数例如6=1+2+3。参考分解质因数的方法,再判断。
程序源代码:
from sys import stdout
for j in range(2,1001):
k = []
n = -1
s = j
for i in range(1,j):
if j % i == 0:
n += 1
s -= i
k.append(i)
if s == 0:
print(j)
for i in range(n):
stdout.write(str(k[i]))
stdout.write(' ')
print(k[n])运行结果为:
6
1 2 3
28
1 2 4 7 14
496
1 2 4 8 16 31 62 124 248题八
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
解题思路:分子与分母的变化规律。
程序源代码:
a = 2.0
b = 1.0
s = 0
for n in range(1,21):
s += a / b
t = a
a = a + b
b = t
print(s)运行结果为:
32.66026079864164题九
利用递归方法求阶乘,如求5!
解题思路:递归思想。
程序源代码:
def fact(j):
sum = 0
if j == 0:
sum = 1
else:
sum = j * fact(j - 1)
return sum
print ('%d! = %d' % (5,fact(5)))运行结果为:
5! = 120相关推荐
-
- 2010office激活密钥25个字符
-
步骤/方式1officeprofessionalplus2010:(office专业版)6QFdx-pYH2G-ppYFd-C7RJM-BBKQ8Bdd3G-xM7FB-Bd2HM-YK63V-VQFdKVYBBJ-TRJpB-QFQ...
-
2025-11-07 01:03 off999
- 刷机(刷机软件)
-
答:用下步骤可把电脑刷机:1、制作启动U盘,如大白菜U盘启动盘,然后将下载的系统iso文件直接复制到U盘的GHO目录下。2、在需要刷机的台式电脑上插入U盘,重启后不停按F12、F11、Esc等快捷键打...
- u盘装linux系统教程(u盘安装linux操作系统安装教程图解)
-
以制作Ubuntulinux系统为例:1、首先要下载Ubuntu系统,在搜索Ubuntu,打开Ubuntu官网。2、然后在下载那里,选择桌面版。3、选择好版本之后,点击下载。4、随后跳转到一个网页,...
- 系统软件卸载器下载(系统软件卸载器专业版)
-
小米手机清理安装包有两个方法:1.用安全中心清理,步骤如下:打开安全中心,点击垃圾清理点击右上角的手机瘦身屏幕滑到底部,有一个安装包清理2.用文件管理清理,步骤如下:打开文件管理,选择安装包...
- 电脑开机不了怎么弄(电脑开机不了怎么弄回来)
-
1、打开电脑,点击【开始】键,可以直接在桌面左下角点击,也可以点击键盘上的电源键;2、在跳出的菜单栏中点击【控制面板】;3、在【控制面板】页面中,找到【系统和安全】,并点击;4、找到操作中心页面,并点...
- root权限获取下载(root权限获取教程)
-
你好!一般的安卓系统的手机都是可以root的,不过root的方法是不一样的。1,一般的手机可以直接在手机上用手机上的root的软件就可以的,一些root工具都可以的等等。2,在就是小米类型的手机直接刷...
- 改ip地址的软件有哪些(改ip的软件真的有用吗)
-
没有绝对好用的IP修改器,ip修改器只有合适自己的才是最好的。因为IP修改器的使用环境不一样,每个ip修改器功能和特点不同,自己用途和范围选择合适的。比如,有些ip修改器适合修改ip地址,有的IP修改...
- 台式机安装系统步骤(绝尘侠台式机如何u盘安装系统)
-
中柏EZbookA13使用U盘重装系统:1、将u盘制作成【u启动u盘启动盘】,接着前往相关网站下载win系统存到u盘启动盘,重启电脑等待出现开机画面按下启动快捷键,选择u盘启动进入到主菜单,选取“【...
- 台式电脑w7怎么升级w10(台式机win7升级win10)
-
Win7不够8G内存怎么升级到win10。朋友也就是说你现在在使用win7系统。内存不够8G那就是4G的呀。Windows10最低配置的内存就是4G。所以说你要把windows7升级为window...
- 电脑怎么下载百度(笔记本电脑怎么下载百度)
-
电脑下载浏览器步骤如下1.打开电脑浏览器,搜索想要下载的电脑版的浏览器,打开官网2.进入官网,点击立即下载3.出现新建下载任务图标,点击下载,下载安装包4.下载完毕,点击打开5.进入安装界面,点击安装...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
