文章目录
- 1.自守数
- 2.等差数列
- 3.输入整形数组和排序标识,对其元素按照升序或降序
- 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这两个自守数
 参考代码:
import sys
for line in sys.stdin:a = int(line.split()[0])count = 0for 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 += 1print(count)
2.等差数列
描述:等差数列 2,5,8,11,14。。。。
 (从 2 开始的 3 为公差的等差数列)
 输出求等差数列前n项和
 输入描述:输入一个正整数n。
 输出描述:输出一个相加后的整数。
 示例1
 输入:2
 输出:7
 实例2
 输入:275
 输出:113575
 参考代码:
import sysfor 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
 参考代码:
import systmp_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.
 参考代码:
import sysfor line in sys.stdin:a = line.split()[0]a_list = aa_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 += kb = list(tmp_str)b.sort()b_str = ''.join(b)tmp += b_strprint(tmp)
5.记负均正II
描述:输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
 本题有多组输入数据,输入到文件末尾。
 输入描述:输入任意个整数,每行输入一个。
 输出描述:输出负数个数以及所有非负数的平均值
 示例1:
 输入:
 -13
 -4
 -7
 输出:
 3
 0.0
 示例2
 输入:
 -12
 1
 2
 输出:
 1
 1.5
 参考代码:
import systmp_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 += 1else:total += _result = total if total == 0 else total / (len(tmp_list) - count)
print(count)
print("{}".format(round(float(result),1)))