学习目标:
- 不大的数;
- 求存款;
- 递增三元数组。
学习内容:
示例一 不大的数
在当今的大数据时代,超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会,然而由于时间有限,所以短时间内难以找出大数计算的通用算法,于是学校找到了同学中的“神霸”——你来帮忙,并仅要求你能在数并不算大的时候给出结果。又出于某种特殊需要,也并不要求你给出数的全部结果,而只是要求结果的前10位(注意不是后10位),并考虑到2的幂次的特殊性和典型性,所以要你计算的数均为2的幂次。
输入:一个自然数n。数据规模和约定 0<=n<=10000000
输出:2的n次幂的前10位。
代码演示
a = int(input())
num = pow(2, a)
num = list(str(num))
str1 = ""
for i in range(10):
str1 = str1 + num[i]
print(int(str1))
思路:按照要求求出幂,将幂进行字符串化后便于列表化,通过遍历取出前十个数字的字符串拼接在一起。最后打印输出。
运行结果演示
求存款
接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计算一年期满后的本金与利息总额。说明:(1) 存款金额以人民币元为单位,精确到分;(2) 输入利率时不输入百分号,例如利率为3.87%,用户直接输入3.87;(3) 按照国家法律,存储利息所得需缴纳5%的所得税,计算结果时应当扣除所得税。(4) 显示的结果精确到人民币分。
注意:数据须用float表示;计算结果须保存到一个float变量中,再输出。
代码演示
money, rate = input().split()
money = float(money)
rate = float(rate)
lixi = money * rate * 0.95 * 0.01
sum = money + lixi
print("{:.2f}".format(sum))
运行结果演示
示例三 递增三元数组
给定三个整数数组
A = [A1, A2, … AN],
B = [B1, B2, … BN],
C = [C1, C2, … CN],
请你统计有多少个三元组(i, j, k) 满足:
1 <= i, j, k <= N
Ai < Bj < Ck
输入:
第一行包含一个整数N。 第二行包含N个整数A1, A2, … AN。 第三行包含N个整数B1, B2, … BN。 第四行包含N个整数C1, C2, … CN。
输出:一个整数表示答案
代码演示
N = int(input())
count = 0
ls1 = input().split()
ls2 = input().split()
ls3 = input().split()
#将列表进行整形化
for i in range(N):
ls1[i] = int(ls1[i])
ls2[i] = int(ls2[i])
ls3[i] = int(ls3[i])
#进行比较
for i in range(N):
for j in range(N):
for k in range(N):
if ls1[i] < ls2[j] and ls2[j] < ls3[k]:
count += 1
print(count)