文章目录
-
-
- 1.自守数
- 2.等差数列
- 3.输入整形数组和排序标识,对其元素按照升序或降序
- [4. 字符统计](#4. 字符统计)
- 5.记负均正II
-
1.自守数
描述:自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n(包括n)以内的自守数的个数
输入描述:int型整数
输出描述:n以内自守数的数量。
示例1:
输入:6
输出:4
说明:有0,1,5,6这四个自守数
示例2:
输入:1
输出:2
说明:有0, 1这两个自守数
参考代码:
python
import sys
for line in sys.stdin:
a = int(line.split()[0])
count = 0
for i in range(a+1):
a = i ** 2
# print(a)
a_str = str(a)
i_str = str(i)
i_len = len(i_str)
for j in range(len(a_str)):
if a_str[len(a_str)-1-j:] == i_str:
count += 1
print(count)
2.等差数列
描述:等差数列 2,5,8,11,14。。。。
(从 2 开始的 3 为公差的等差数列)
输出求等差数列前n项和
输入描述:输入一个正整数n。
输出描述:输出一个相加后的整数。
示例1
输入:2
输出:7
实例2
输入:275
输出:113575
参考代码:
python
import sys
for line in sys.stdin:
a = int(line.split()[0])
total = a * 2 + a * (a - 1) // 2 * 3
print(total)
3.输入整形数组和排序标识,对其元素按照升序或降序
描述:输入整型数组和排序标识,对其元素按照升序或降序进行排序
输入描述:
第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序
输出描述:
输出排好序的数字
示例1:
输入:
8
1 2 4 9 3 55 64 25
0
输出:
1 2 3 4 9 25 55 64
示例2:
输入:
5
1 2 3 4 5
1
输出:
5 4 3 2 1
参考代码:
python
import sys
tmp_list = []
for line in sys.stdin:
a = line.split()
tmp_list.append(a)
tmp = [ int(_) for _ in tmp_list[1] ]
tmp.sort()
tmp = [ str(_) for _ in tmp ]
if tmp_list[2][0] == '0':
print(' '.join(tmp))
else:
tmp.reverse()
print(' '.join(tmp))
4. 字符统计
描述:输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。
输入描述:一个只包含小写英文字母和数字的字符串。
输出描述:一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。
示例1
输入:aaddccdc
输出:cda
说明:样例里,c和d出现3次,a出现2次,但c的ASCII码比d小,所以先输出c,再输出d,最后输出a.
参考代码:
python
import sys
for line in sys.stdin:
a = line.split()[0]
a_list = a
a_set = set(a)
a_dict = { _: a_list.count(_) for _ in a_set }
tmp_list = [ _ for _ in a_dict.values() ]
tmp_list = list(set(tmp_list))
tmp_list.sort()
tmp_list.reverse()
tmp = ''
for _ in tmp_list:
tmp_str = ''
for k,v in a_dict.items():
if v == _:
tmp_str += k
b = list(tmp_str)
b.sort()
b_str = ''.join(b)
tmp += b_str
print(tmp)
5.记负均正II
描述:输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾。
输入描述:输入任意个整数,每行输入一个。
输出描述:输出负数个数以及所有非负数的平均值
示例1:
输入:
-13
-4
-7
输出:
3
0.0
示例2
输入:
-12
1
2
输出:
1
1.5
参考代码:
python
import sys
tmp_list = []
for line in sys.stdin:
a = line.split()[0]
tmp_list.append(a)
tmp_list = [ int(_) for _ in tmp_list]
count = 0
total = 0
for _ in tmp_list:
if _ < 0:
count += 1
else:
total += _
result = total if total == 0 else total / (len(tmp_list) - count)
print(count)
print("{}".format(round(float(result),1)))