一、3位水仙花数计算
1、题目
3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
输入2个正整数m和n(100<=m<n<1000),要求每行分别输入
请按照从小到大的顺序输出m和n之间的所有的3位水仙花数,请用一个“逗号+空格”分隔输出结果。
注意:这是一个OJ题目,输出格式要严格一致,最后一位水仙花数后没有逗号。
输入格式:
第一行输入第一个数m
第二行输入第二个数n
输出格式:
示例:634, 412
(注意,这两个数字不是水仙花数)
输入样例:
100
999
输出样例:
153, 370, 371, 407
2、代码
x = int(input())
y = int(input())
bool1 = True
while x <= y:
i = x
n = i
while i > 0:
j = i % 10
n -= j ** 3
i //= 10
if n == 0:
if bool1:
print(x, end='')
else:
print(",", x, end='')
bool1 = False
x += 1
二、求1到n之间的奇数之和
1、题目
求1到正整数n之间的奇数之和,输出结果后换行。
输入格式:
输入一个正整数。
输出格式:
输出结果后换行。
输入样例1:
100
输出样例1:
2500
输入样例2:
99
输出样例2:
2500
2、代码
n = int(input())
s = 0
for i in range(n+1):
if i%2!=0:
s+=i
print(s)
三、最大公约数
1、题目
求两个正整数m,n的最大公约数(Greatest Common Divisor,简称GCD)。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个整数m,n(0<m,n<109)。
输出格式:
对于每组测试,输出m,n的最大公约数。
输入样例:
2
63 36
20 15
输出样例:
9
5
2、代码
import math
n = int(input())
while n != 0:
s = input()
x = int(s.split(" ")[0])
y = int(s.split(" ")[1])
print(math.gcd(x, y))
n-=1
四、Python-列表:将一个列表拆分成两个列表并按升序输出
1、题目
输入一个由若干正整数组成的列表,将其中的奇数和偶函分别存入另外两个列表中,并将这两个列表按升序输出。
输入格式:
输入一个由若干正整数组成的列表。
输出格式:
按升序输出这两个分别由奇数和偶数构成的列表。
输入样例:
[2,5,8,4,3,7,12,20]
输出样例:
[3, 5, 7]
[2, 4, 8, 12, 20]
2、代码
str = input()
str = str[1:-1]
arr = [int(n) for n in str.split(",")]
arr1 = []
arr2 = []
for i in range(len(arr)):
if arr[i]%2==0:
arr2.append(arr[i])
else:
arr1.append(arr[i])
arr1.sort()
arr2.sort()
print(arr1)
print(arr2)
五、python字典-将字典的键和值分别存入两个列表并输出
1、题目
输入一个字典,将字典的键和值分别存入两个列表并输出。
输入格式:
以字典形式输入,见输入样例。
输出格式:
分行以列表形式输出字典的键和值,见输出样例。
输入样例:
在这里给出一组输入。例如:
{'a':3, 'c': 6, 'd':1, 'e': 10}
输出样例:
在这里给出相应的输出。例如:
['a', 'c', 'd', 'e']
[3, 6, 1, 10]
2、代码
str = input()
dic = {}
dic = eval(str)
list1 = []
list2 = []
list1.extend(dic)
list2.extend(dic.values())
print(list1)
print(list2)
六、含8的数字的个数
1、题目
现代人对数字越来越讲究,都喜欢含有8的数字。现要你编程计算a至b之间的含有数字8的数的个数(比如181,88,8,28这些数都含有数字8,而21,45,49等没有含有数字8)。
输入格式:
在一行中输入两个正整数a和b,用一个空格隔开。0<a<=b<100000。
输出格式:
输出a和b之间含有8的数的个数。包括a和b。
输入样例:
1 30
输出样例:
3
2、代码
import operator
str1 = input()
arr = [int(n) for n in str1.split(" ")]
n = arr[0]
m = arr[1]
temp = 0
for i in range(n,m+1):
s = str(i)
if operator.contains(s,"8"):
temp += 1
print(temp)
七、统计字符串中数字字符的个数
输入一个字符串,统计其中数字字符('0'……'9')的个数。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
输出所统计的数字字符的个数。
输入样例:
It's 512?
输出样例:
3
2、代码
s = input()
temp =0
for i in range(len(s)):
if s[i].isdigit():
temp += 1
print(temp)
八、从1到n之间所有奇数的阶乘值
已知求阶乘的函数如下,利用这个函数,编程计算并输出1到n
之间所有奇数
的阶乘
值。
其中n
由用户从键盘输入
。
long Fact(int n)
{
int i;
long result = 1;
for (i=2; i<=n; i++)
result *= i;
return result;
}
输入格式:
用户从键盘输入正整数n的值(不超过12)。
输出格式:
按输出样例的形式输出计算的结果。
输入样例:
10
输出样例:
1! = 1
3! = 6
5! = 120
7! = 5040
9! = 362880
2、代码
def Fact(n):
result = 1
for i in range(2, n + 1):
result *= i;
return result
n = int(input())
for i in range(n + 1):
if i % 2 != 0:
s = 0
s += Fact(i)
print(str(i)+"! = " + str(s))
九、Python字典-学生成绩统计
有一个班若干个学生考试的成绩表,由学号和成绩组成,将其组成一个字典如: {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}。
输出内容:
1. 按成绩从高到低输出成绩表字典;
2. 计算全班的平均分(精确到小数后两位);
3. 输出最高分的同学:学号:成绩。
输入格式:
按字典格式输入
输出格式:
输出成绩表字典、输出平均分、输出最高分。
输入样例:
{'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}
输出样例:
{'1003': 100, '1008': 100, '1001': 85, '1002': 70, '1005': 60}
平均分=83.00
最高分:
1003:100
1008:100
2、代码
grade = eval(input())
grades = []
ID = []
for i in grade:
grades.append(grade[i])
ID.append(i)
for i in range(0,len(grades)):
for j in range(i,len(grades)):
if grades[j] > grades[i]:
g = grades[i]
id = ID[i]
grades[i] = grades[j]
ID[i] = ID[j]
grades[j] = g
ID[j] = id
dic = dict(zip(ID,grades))
print(dic)
sum = 0
for k in range(len(grades)):
sum = sum + grades[k]
average = sum /len(grades)
print("平均分={:.2f}".format(average))
highest = grades[0]
print("最高分:")
for k in range(len(grades)):
if grades[k] == highest:
print("{}:{}".format(ID[k],grades[k]))
十、python字典-将字典的值排序输出
1、题目
输入一个字典,将字典的值按升序排序后输出。
输入格式:
以字典形式输入,值必须是数值型,见输入样例。
输出格式:
在一行内输出排序后字典的值,数据间有一个空格,见输出样例。
输入样例:
在这里给出一组输入。例如:
{'a':3, 'c': 6, 'd':1, 'e': 10}
输出样例:
在这里给出相应的输出。例如:
1 3 6 10
2、代码
dic = eval(input())
lis = []
lis.extend(dic.values())
lis.sort()
for i in range(len(lis)):
if i == len(lis)-1:
print(str(lis[i]))
else:
print(str(lis[i]),end=" ")