目录
1.编写函数,实现根据键盘输入的长、宽、高之值计算长方体体积。
2.编写函数,使用递归函数f(n)实现斐波那契数列中小于等于参数n的所有值。
3.编写函数,从键盘输入一个整数,判断其是否为完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:6=1+2+3,28=1+2+4+7+14。
4.编写函数,从键盘输入参数n,使用递归函数H(n)实现下列特征方程中小于等于参数n的所有值。 H(0)=0; H(1)=1; H(2)=2; H(n)= H(n)+9H(n-2)-9H(n-3)
5.编写函数,实现折半查找。
6.编写函数,从键盘输入参数x和n,计算并显示形如x+xx +xxx + xxxx + xxxxx+xxx…xxx+ 的表达式前n项的值。
7.编写函数,从键盘输入参数n,计算并显示表达式1 +1/2 –1/3 + 1/4 –1/5 + 1/6+… +(-1)n/n 的前n项之和。
8.编写函数,从键盘输入一字符串,判断该字符串是否为会回文,所谓回文是指,从前向后读和从后向前读是一样的。
运行结果:
9.编写函数,从键盘输入一字符串,把其中的各个字符颠倒,标点符号不颠倒,例如,'I enjoy reading!’,经过函数调用后变为'gnidaer yojne I’。
10.佩奇去超市购买54元巧克力和53元果冻,货币面值有20、10、2、1元,按付款货币数量最少原则,佩奇需要付给超市多少数量的货币,编写函数实现该算法。
程序代码:
- x = int(input("请输入长方体的长:"))
- y = int(input("请输入长方体的宽:"))
- z = int(input("请输入长方体的高:"))
- def rectangle_volume(rectangle_length,rectangle_width,rectangle_height):
- rectangle_volume_true = rectangle_height*rectangle_width*rectangle_length
- print("矩形的体积为:",rectangle_volume_true)
- return 0
- rectangle_volume(x,y,z)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/01.py
- 请输入长方体的长:8
- 请输入长方体的宽:4
- 请输入长方体的高:2
- 矩形的体积为: 64
- 进程已结束,退出代码0
程序代码:
- def fib(n):
- a,b = 1,1
- while a <= n:
- print(a,end=" ")
- a,b = b,a+b
- fib(1000)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/02.py
- 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
- 进程已结束,退出代码0
程序代码:
- number = int(input("请输入一个数字:"))
- a = []
- def complete_number(number):
- for i in range(1,number):
- if number % i == 0:
- a.append(i)
- if sum(a) == number:
- print("{}是完美数".format(number))
- else:
- print("{}不是完美数".format(number))
- complete_number(number)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/03.py
- 请输入一个数字:6
- 6是完美数
- 进程已结束,退出代码0
程序代码:
- number= int(input("请输入参数n:"))
- def H(n):
- if 0 <= n < 3:
- return n
- else:
- return H(n-1)+9*H(n-2)-9*H(n-3)
- print("函数H(n)小于等于参数n的所有值为:")
- for i in range(number+1):
- print(H(i),end=" ")
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/04.py
- 请输入参数n:5
- 函数H(n)小于等于参数n的所有值为:
- 0 1 2 11 20 101
- 进程已结束,退出代码0
程序代码:
from random import randint def binarySearch(lst,value): start = 0 end = len(lst) while start <= end: middle = (start+end)//2 if value == lst[middle]: return middle elif value > lst[middle]: start = middle + 1 elif value < lst[middle]: end = middle - 1 return False lst = [randint(1,50) for i in range(1,20)] lst.sort() print(lst) result = binarySearch(lst,10) if result != False: print("查找成功!位置在:",result+1) else: print("查找失败!")
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/05.py
- [2, 6, 8, 10, 11, 12, 13, 19, 24, 32, 37, 37, 37, 39, 41, 44, 45, 45, 48]
- 查找成功!位置在: 4
- 进程已结束,退出代码0
程序代码:
- x = int(input("请输入最开始的一个数:"))
- n = int(input("请输入你想求和的项数:"))
- a = 0
- b = 0
- def jie_fib_sum(x,n):
- global a,b
- while n:
- a += x
- n -= 1
- x *= 10
- b += a
- return b
- result = jie_fib_sum(x,n)
- print("前n项和为:",result)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/06.py
- 请输入最开始的一个数:1
- 请输入你想求和的项数:5
- 前n项和为: 12345
- 进程已结束,退出代码0
程序代码:
- n = int(input("请输入你想进行计算的数字:"))
- count = 1
- def add(n):
- global count
- for i in range(2,n+1):
- if i%2 == 0:
- count += (1/i)
- else:
- count -= (1/i)
- print("前{}项和为:".format(n),count)
- add(n)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/07.py
- 请输入你想进行计算的数字:2
- 前2项和为: 1.5
- 进程已结束,退出代码0
程序代码:
string = input("请输入一字符串:") string_list = [] for i in string: string_list.append(i) def return_word(lis): start = 0 end = len(lis) if lis[start] == lis[end-1]: start += 1 end -=1 if lis[start] == lis[end-1]: print("{}是回文".format(string)) else: print("{}不是回文".format(string)) return_word(string_list)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/08.py
- 请输入一字符串:杜小杜
- 杜小杜是回文
- 进程已结束,退出代码0
程序代码:
由于太懒了就做了一个“!”的字符颠倒。代码中有两个感叹号,是因为中英文输入的感叹号不同,要是只写中文感叹号或是英文感叹号可能会出现报错情况。
string = input("请输入一字符串:") string_list = [] keep = [] lis_new = [] last = [] for i in string: string_list.append(i) def replace(lis): count = 0 end = len(lis) if end == 1: lis_ol = "".join(lis) print(lis_ol) else: for index,nums in enumerate(lis): if nums == "!" or nums == "!": keep.append(index) else: continue for i in range(end): keep_new = [i for i in keep] lis_new.append(i) lis_new_last = list(set(lis_new) - set(keep_new)) if len(keep) == 0: lis[i], lis[end - i - 1] = lis[end - i - 1], lis[i] count += 1 if count == (end // 2)+1: break if len(keep) != 0: lis_new_last.reverse() for l in (lis_new_last): if l == end - i - 2: lis[i],lis[l] = lis[l],lis[i] lis_ol ="".join(lis) print(lis_ol) replace(string_list)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/09.py
- 请输入一字符串:我愛杜杜!
- 杜杜愛我!
- 进程已结束,退出代码0
程序代码:
- def min_number(n):
- if n <= 0:
- print("错误!请检查您的付款金额")
- else:
- x = n // 20
- x += 1
- print("需要最少货币:",x, "张")
- min_number(107)
运行结果:
- C:\ProgramData\Anaconda3\python.exe D:/blue4/10.py
- 需要最少货币: 6 张
- 进程已结束,退出代码0
联系客服