文章目录
- L1-012 计算指数~5
- L1-008 求整数段和~10
- L1-017 到底有多二~15
- [1038 统计同成绩学生~20](https://editor.csdn.net/md/?articleId=124436432)
L1-012 计算指数~5
真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2
n
。不难吧?
输入格式:
输入在一行中给出一个不超过 10 的正整数 n。
输出格式:
在一行中按照格式 2^n = 计算结果 输出 2
n
的值。
输入样例:
5
输出样例:
2^5 = 32
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
·
代码如下:
n = int(input())
print("2^{} = {}".format(n, 2**n))
L1-008 求整数段和~10
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。
输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。
输入样例:
-3 8
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
·
代码如下:
方法一:
A, B = input().split()
A, B = eval(A), eval(B) # eval() 去掉字符
sum1, c = 0, 0
for i in range(A, B+1):
sum1 += i # 输出的值依次相加
if c % 5 == 0 and c != 0: # 每5个数字换行
print("\n", end='')
c += 1 # 每走一次循环一次
print("%5d" % i, end='') # 每个数字占5个字符宽度
print("\nSum = %d" % sum1) # 所有和的结果
exit(0) # 退出程序
方法二:
a, b = map(int, input().split())
sum2, c = 0, 0
for i in range(a, b+1):
sum2 += i
c += 1 # 每每循环一次
if c == 5: # 第5个换行
print("{:>5d}".format(i)) # 占符5位,且右对齐
c = 0 # 注意c=0,便于后面数字不足五位,换行
else:
print("{:>5d}".format(i), end='')
if c != 0: # 不可省略,否则失去一个测试点,即扣一分
print()
print("Sum =", sum2)
知识点:python-右对齐
L1-017 到底有多二~15
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。
输入格式:
输入第一行给出一个不超过50位的整数N。
输出格式:
在一行中输出N犯二的程度,保留小数点后两位。
输入样例:
-13142223336
输出样例:
81.82%
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
n = input()
a, b, n2 = 1, 1, 0 # n2存储2的出现次数
li = len(str(abs(int(n)))) # 输入的个数长度
# print(li)
for i in n: # 遍历输入的n
if '2' == i: # 找到2
n2 += 1 # 每找到一次增加一次
if int(n) < 0: # 当输入的数是负数时
a *= 1.5
if int(n) % 2 == 0: # 当为偶数时
b *= 2
print("{:.2%}".format(n2/li*a*b))
1038 统计同成绩学生~20
每日一言:
持续更新中…
python自学网