网站建设的视频教程,定制公交app,做一手房做那个网站好,菏泽做企业网站1、3位水仙花数计算
3位水仙花数”是指一个三位整数#xff0c;其各位数字的3次方和等于该数本身。
例如#xff1a;
ABC是一个“3位水仙花数”#xff0c;则#xff1a;A的3次方#xff0b;B的3次方#xff0b;C的3次方 ABC。
使用Python#xff0c;输出所有的3…1、3位水仙花数计算
3位水仙花数”是指一个三位整数其各位数字的3次方和等于该数本身。
例如
ABC是一个“3位水仙花数”则A的3次方B的3次方C的3次方 ABC。
使用Python输出所有的3位水仙花数。for i in range(100,1000):if pow(i // 100 , 3) pow(i % 10 , 3) pow(i // 10 % 10, 3) i:print(i,end )153 370 371 407
Process finished with exit code 0
水仙花数是指一个 3 位数它的每个位上的数字的 3次幂之和等于它本身例如1^3 5^3 3^3 153。与水仙花数类似
同样的与水仙花数相似回文数的判断方法也是采取相应的方式
2、回文数的判断
“回文”是指正读反读都能读通的句子。在数学中也有这样一类数字有这样的特征称为回文数例如12125852等等
ninput(请输入一个数字)if n n[::-1]:print(你输入的数字是回文数)else:print(你输入的数字不是回文数)
这里是根据回文数的特性回文数和本身颠倒的数相等来进行判断的
3、使用Python判断是否为闰年
判断任意年份是否为闰年需要满足以下条件中的任意一个
① 该年份能被 4 整除同时不能被 100 整除
② 该年份能被400整除。
由于满足闰年的条件互相有关联所以可以使用条件语句来实现判断输入的年份是否为闰年
defleap(a):if a % 4 0:if a % 400 0:returnTrueelif a % 100 0:returnFalseelse:returnTrueelse:returnFalse
nint(input())if leap(n) True:print({}年是闰年.format(n))else:print({}年不是闰年.format(n))
4、快乐的数字
首先是一个快乐的数字的定义
快乐的数字按照如下方式确定从一个正整数开始用其每位数的平方之和取代该数并重复这个过程直到最后数字要么收敛等于1且一直等于1要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。使用Python编写一个算法来确定一个数字是否“快乐”
例如数字 19 就是一个快乐的数字计算过程如下
12 92 82
82 22 68
62 82 100
12 02 02 1 最终收敛为1
这里经过了分析得出了当循环到数字4时那么这个数字一定不是快乐数所以可以得出条件。设置一个循环当循环到1快乐数或者4不是快乐数时就终止循环得出结果是否为快乐数
def getSumofSquares(num): #快乐数判断
numStrstr(num)
sum0for i innumStr:
sum int(i)**2
returnsum
ninput()
sumofSqrseval(n)while sumofSqrs ! 1 and sumofSqrs ! 4:
sumofSqrsgetSumofSquares(sumofSqrs)else:if sumofSqrs 1:print(True)else:print(False)
5、括号配对检测
用户输入一行字符串其中可能包括小括号 ()请检查小括号是否配对正确本题仅限于小括号
defmatch_parentheses(s):#把一个list当做栈使用
ls []
parentheses ()
for i inrange(len(s)):
sis[i]#如果不是括号则继续
if parentheses.find(si) -1:continue
#左括号入栈
if si (:
ls.append(si)continue
if len(ls) 0:returnFalse#出栈比较是否匹配
p ls.pop()if p ( and si ):continue
else:returnFalseif len(ls) 0:returnFalsereturnTrue
ninput()
resultmatch_parentheses(n)if resultTrue:print(配对成功)else:print(配对不成功)
这里是使用list来代替栈的作用来完成括号匹配的功能
括号匹配问题所有的括号算法
首先设置两个列表分别存放的是各种括号的开括号和闭括号然后遍历给定的字符串分如下几种情况
1.字符串 首字符 出现在闭括号列表中直接结束输出错误
2.字符串长度不为偶数直接结束输出错误
3.对原始字符串列表化去重如果去重后的列表长度不为偶数直接结束输出错误
4.遍历字符串将属于开括号集合的括号加入到列表中当遇上一个闭括号的时候计算该闭括号在闭括号列表中的索引与
当前列表最后一个开括号在开括号列表中的索引是否一致一致则继续否则直接结束输出错误
defbracket_mathch(one_str):
tmp_list[]
open_bracket_list [(, [, {, , 《]
close_bracket_list [), ], }, , 》]
one_str_listlist(one_str)
lengthlen(one_str_list)
set_listlist(set(one_str_list))
num_list [one_str_list.count(one) for one inset_list]if one_str[0] inclose_bracket_list:returnFalseelif length % 2 !0:returnFalseelif len(set_list) % 2 !0:returnFalseelse:for i inrange(length):if one_str[i] inopen_bracket_list:
tmp_list.append(one_str[i])elif one_str[i] inclose_bracket_list:if close_bracket_list.index(one_str[i]) open_bracket_list.index(tmp_list[-1]):
tmp_list.pop()else:returnFalsebreak
returnTrue
one_str_list [({}, ({[]}), [(){}, {{{{{, ([{}), }{[)]]for one_str inone_str_list:ifbracket_mathch(one_str):print(one_str, 括号匹配正确)else:print(one_str, 括号匹配错误)
注这里仅支持输入纯括号并对其进行括号匹配判断没有实现括号字符串的括号匹配
6、天天向上的力量
一年365天以第一天的能力为基数记为1.0当好好学习时能力值相比前一天提高1‰当没有学习时能力值相比前一天下降1‰。
每天努力和每天放任一年下来的能力值相差多少呢
importmath
dayup math.pow((1.00.001),365) #每天提高
daydown math.pow((1.0-0.001),365) #每天下降
print(每天提高{:.2f}每天懈怠{:.2f}.format(dayup,daydown))每天提高1.44每天懈怠0.69
这是很基础的一个调用math库函数的题然后使用格式化输出。
可以看出经过1年的时间每天提高一点点竟然达到了 1.69 这说明天天向上的力量不可小觑。所以从每天做起每天改变一点点日积月累就会获得巨大的改变。