day18 --------------------------------------------------------------- 实例026:利用递归方法求5! 分析:递归包括递归体和递归条件,上代码 def cs(a): tmp = 1 if a <=1: return a tmp = a * cs(a-1) return tmp print(cs(5)) 看看答案: def factorial(n): return n*factorial(n-1) if n>1 else 1 p…
22 [程序 22 递归求阶乘] 题目:利用递归方法求 5!. 程序分析:递归公式:fn=fn_1*4! package cskaoyan; public class cskaoyan22 { @org.junit.Test public void recursion() { long number = 5; System.out.println(factorial(number)); } private long factorial(long number) { if (number == 1…
题目:利用递归方法求5!.分析:递归公式:n*factorial(n-1); public class Prog22 { public static void main(String[] args) { System.out.println(factorial(5)); } //递归求阶乘 public static long factorial(int n) { if(n==0||n==1) { return 1L; } return n*factorial(n-1); } } /*运行结果…
1 /*22 [程序 22 递归求阶乘] 2 题目:利用递归方法求 5!. 3 程序分析:递归公式:fn!=fn*4! 4 */ 5 6 /*分析 7 * 递归:如果其中每一步都要用到前一步或前几步的结果,称为递归的 8 * 根据提示,可以用算法x!=x*(x-1)!;y=x-1,y!=y*(y-1)!;... 9 * 10 * */ 11 12 13 package homework; 14 15 public class _22 { 16 17 public static void main…
package main import "fmt" func factorialFor(num int) (ret int) { // 循环求阶乘 ret = 1 for i := 1; i <= num; i++ { ret *= i } return } func factorialRecursion(num int) int { // 递归求阶乘 if num == 0{ return 1 } return num * factorialRecursion(num - 1)…
day20 --------------------------------------------------------------- 实例028:递归求等差数列 题目 有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第3个人,又说比第2人大两岁.问第2个人,说比第1个人大两岁.最后问第1个人,他说是10岁.请问第5个人多大? 分析:递归有递归体和结束条件及结束的处理办法,递归体就是+2,结束就是第几个人,然后一级一级返回当前年龄即可. 1…
1:题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源代码: 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): print(i, j, k) 以上实例输出结果为: 1 2 3 1 2 4 1 3…
深深感知python基础是有多么重要,Ljh说一定要多练题,so,我现在开始要每天打卡练习python.加油! 01:求‘1-100’的偶数和 #第一种解法: sum=0 num=0 while num<101: num+=1 if num%2==0: sum+=num print(sum) #第二种解法: sum=0 for i in range(2,101,2): sum+=i print(sum) #第三种解法: sum=0 for i in range(1,101): if i%2==0…
函数递归 递归的本质: 就是一个函数调用另外一个函数. def d(): return '123' def c(): r = d() return r def b(): r = c() return r def a(): r = b() print(r) a() def func(n): n += 1 if n >=4: return 'end' return func(n) r = func(1) print(r) 图解: 思考题: def func(): n +=1 if n >= 4:…
day17 --------------------------------------------------------------- 实例025: 阶乘求和 题目 求1+2!+3!+-+20!的和. 分析:阶乘嘛,写两个函数解决,一个返回阶乘,一个求和... 1 def a(x): 2 tmp = 1 3 if x>1: 4 for i in range(1,int(x)+1): 5 tmp *= i 6 return tmp 7 8 def ct(x): 9 tmp = 0 10 for…
day32 --------------------------------------------------------------- 实例046:打破循环 题目 求输入数字的平方,如果平方运算后小于 50 则退出. 分析:直接上代码. while True: try: n=float(input('输入一个数字:')) except: print('输入错误') continue dn=n**2 print('其平方为:',dn) if dn<50: print('平方小于50,退出')…
day19 --------------------------------------------------------------- 实例027:递归输出 题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来. 分析:相反顺序可以用列表来,直接pop方法. 1 def reverseprint(a): 2 lit = list(a) 3 if len(lit)>0: 4 print(lit.pop()) 5 a = "".join(lit) 6 reverse…
day13 --------------------------------------------------------------- 实例021:猴子偷桃 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 分析:反向推断,第一天摘1个桃子,第二天会摘(1+1)x2个桃子....第9天会摘xxx个桃子?代码如…
day11 --------------------------------------------------------------- 实例018:复读机相加 题目 求s=a+aa+aaa+aaaa+aa-a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制. 分析:很简单,字符串*x可以复制. 1 a = input('请输入数字:') 2 n = input("请输入要加几次:") 3 s = 0 4 for i in…
day16 --------------------------------------------------------------- 实例024:斐波那契数列II 题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13-求出这个数列的前20项之和. 分析:就是斐波那契数列的后一项除以前一项,于是写了两个函数 1 def fbs(num): 2 a = [0,1] 3 if num<=2: 4 return a 5 else: 6 for i in range(1,int(…
#用递归函数求 n 阶乘的值 def factorial(i): : else: )# sum=n*(n-)!所以直接调用自身 n=int(input('请输入阶乘数:')) ): print('%d !值为 %3d' %(i,factorial(i)))…
day39 --------------------------------------------------------------- 实例061:查找字符串 题目 查找字符串. 分析:查找字符串python提供了4种方法:其中find和index方法,是从左到右开始查找,加r代表从右到左查找:find方法返回找到后第一个子串的下标,未找到返回-1,而index方法未找到会抛出异常. 代码如下: s1 = "qinglaoshi" print(s1.find("ao&qu…
day35 --------------------------------------------------------------- 实例050:随机数 题目 输出一个随机数. 分析:使用random模块,直接上代码. import random #用于生成一个0到1的随机数 print(random.random()) #用于生成一个指定范围的随机数 print(random.uniform(10,11)) #用于生成一个指定范围内的整数 print(random.randint(10,…
day28 --------------------------------------------------------------- 实例042:变量作用域 题目 学习使用auto定义变量的用法. 程序分析 python中的变量作用域. 1 i=0 2 n=0 3 def dummy(): 4 i=0 5 print("xxx",i) 6 i+=1 7 def dummy2(): 8 global n 9 print("---",n) 10 n+=1 11 p…
day25 --------------------------------------------------------------- 实例038:矩阵对角线之和 题目 求一个3*3矩阵主对角线元素之和. 分析:不知道3*3矩阵怎么处理,看答案是列表套列表,所以直接上答案吧 1 mat=[[1,2,3,4], 2 [1,2,3,4], 3 [1,2,3,4], 4 [1,2,3,4] 5 ] 6 count = 0 7 for i in range(len(mat)): 8 count +=…
day23 --------------------------------------------------------------- 实例035:设置输出颜色 题目 文本颜色设置. 分析:不会,直接上答案吧. 1 class bcolors: 2 """ 3 格式:\033[显示颜色m 4 90:黑 5 91:深红 6 92:绿 7 93:黄色 8 94:蓝色 9 95:紫色 10 96:深绿 11 97:白色 12 """ 13 HEAD…
day15 --------------------------------------------------------------- 实例022:画菱形 题目 打印出如下图案(菱形):. * *** ***** ******* ***** *** * 分析:一个循环控制高度,再分上下两部分输出,循环空格+*,代码如下,感觉有点多 1 a = input("请输入菱形的高度:") 2 h = int((int(a)+1)/2) 3 for i in range(1,int(a)+1…
day40 --------------------------------------------------------------- 实例066:三数排序 题目 输入3个数a,b,c,按大小顺序输出. 分析:使用列表,用排序函数sorted i = 0 a = [] while i < 3: a.append(int(input("请输入一个整数:"))) i += 1 print(sorted(a)) 看看答案: # 方法一 raw=[] for i in range(3…
day38 --------------------------------------------------------------- 实例061:杨辉三角 题目 打印出杨辉三角形前十行. 分析:查了一下,杨辉三角规律,每行多一个数,每行的值等于上一行相邻的值相加,其中边角值可以看为0,即一直为1,所以可以用列表套列表来做 代码如下: for i in range(1,10): for k in range(10-i): print(" ", end="") p…
day37 --------------------------------------------------------------- 实例056:画圈 题目 画图,学用circle画圆形. 分析:还是直接上代码 from tkinter import * canvas=Canvas(width=800,height=600,bg='yellow') canvas.pack(expand=YES,fill=BOTH) k=1 j=1 for i in range(26): canvas.cr…
day36 --------------------------------------------------------------- 实例054:位取反.位移动 题目 取一个整数a从右端开始的4〜7位. 分析: 不会,直接上答案吧 (1)先使a右移4位. (2)设置一个低4位全为1,其余全为0的数.可用(0<<4) (3)将上面二者进行&运算. a=int(input('输入一个数字: ')) b=0 # 0 b=~b # 1 b=b<<4 # 10000 b=~b…
day34 --------------------------------------------------------------- 实例049:lambda 题目 使用lambda来创建匿名函数. 分析:直接上代码. Max=lambda x,y:x*(x>=y)+y*(y>x) Min=lambda x,y:x*(x<=y)+y*(y<x) a=int(input('1:')) b=int(input('2:')) print(Max(a,b)) 答案很巧妙,常规写法:…
day31 --------------------------------------------------------------- 实例045:求和 题目 统计 1 到 100 之和. 分析:简单,直接上代码. def sum(a,b): s = 0 for i in range(a,b+1): s += i return s print(sum(1,100)) 看了下答案,思路一样,就不贴了.…
day30 --------------------------------------------------------------- 实例044:矩阵相加 题目 计算两个矩阵相加. 分析:矩阵可以看成是二维列表,外围列表指的就是矩阵的行,里面的列表就是对应的列,即a[1][2]代表第一行第二列. def Matrix(col,row): list = [] if col or row: for i in range(1,row+1): list2 = [] for j in range(1…
day29 --------------------------------------------------------------- 实例043:作用域.类的方法与变量 题目 模仿静态变量(static)另一案例. 程序分析 综合实例041和实例042. 1 class dummy: 2 num=1 3 def Num(self): 4 num = 3 5 print('class dummy num:',self.num) 6 print('global num: ',num) 7 se…