自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 自测-5 Shuffling Machine

看清题目的洗牌方式#include<stdio.h>#define SUM 54int main(){ char *deck[] = {"S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "S10", "S11", "S12", "S13", "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "H11", "H12", "H13", "

2020-07-20 19:13:13 105

原创 Have Fun with Numbers

数字最多有20位,乘2后达到21位,超过了最大整数longlong型的范围(20位),故不能直接以longlong类型读入(有上溢用例,只能得15分)以下是纯C写法://此题坑巨多!!! #include<stdio.h>#define MAX_BITS 21int main(){ int a[10]={0}, b[10]={0}, N[MAX_BITS]={-1}, M[MAX_BITS]={-1}; char tmp; tmp = getchar(); int i

2020-07-19 16:05:02 214

原创 分数比较

注意int相乘可能益处,故要用long型, 格式对应用%ld#include<stdio.h>int main(){ long a1, b1, a2, b2; scanf("%ld/%ld %ld/%ld", &a1, &b1, &a2, &b2); if(a1*b2 > a2*b1) { printf("%ld/%d > %ld/%ld", a1, b1, a2, b2); } else if(a1*b2 < a2*b1

2020-06-30 08:35:55 145

原创 6-2 使用函数验证哥德巴赫猜想

#include <stdio.h>#include <math.h>int prime( int p );void Goldbach( int n );int main(){ int m, n, i, cnt; scanf("%d %d", &m, &n); if ( prime(m) != 0 ) printf("%d is a prime number\n", m); if ( m < 6 ) m = 6;

2020-06-20 17:16:18 229

原创 01-复杂度1 最大子列和问题

在线处理#include<stdio.h>int main(){ int n, k, mask = 0, max = 0; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d", &k); if(max + k > mask) { mask = max + k; } if(max + k > 0) { max += k; } els

2020-06-19 22:04:33 70

原创 7-1 求组合数

注意:double型只能搭配%f输出,否则出错,%.0f控制小数位数为0#include<stdio.h>double fact(int n);int main(){ int m, n; double result; scanf("%d%d", &m, &n); result = fact(n)/(fact(m)*fact(n-m)); printf("result = %.0f", result); return 0;}double fac

2020-06-19 17:31:23 492

原创 5:7-7 找出总分最高的学生(嵌套列表的排序方法)

如何按嵌套列表内层列表的某个元素排序:n = int(input())s = []for i in range(n): t = list(input().split()) s.append(t)for i in range(n): q = int(s[i][2]) + int(s[i][3]) + int(s[i][4]) s[i].append(q) # 获取列表的第6个元素def takeSecond(elem): return elem[5]

2020-05-29 12:09:40 425

原创 5:6-3 使用函数统计指定数字的个数

求高手指教:为何一个测试点过不去?def CountDigit(number, digit): t = len(number) cnt = 0 for i in range(t): if digit == number[i]: cnt += 1 return cntnumber, digit=input().split()number = number.strip()digit = digit.strip()count =

2020-05-28 20:33:42 302 1

原创 5:6-2 使用函数求素数和(处理PTA非零返回问题)

在结尾加exit(0), 至于为何就不清楚了def prime(p): prime = True if p == 1: prime = False else: for i in range(2, int(p**(1/2)+1)): if p%i == 0: prime = False return primedef PrimeSum(m,n): sum = 0 for

2020-05-28 20:15:05 472

原创 4:7-6 统计工龄

sorted()具体用法见菜鸟教程n = int(input())s = list(map(int, input().split()))year = {t: 0 for t in s}for t in s: year[t] += 1# 重点在用sorted()对字典排序,返回由元组构成的列表:y = sorted(year.items(), key=lambda year: year[0])for i in y: if i[1] != 0: print('{}:

2020-05-28 10:56:56 266

原创 4: 7-4 分析活动投票情况

问:哪位高手能告诉在下怎么就TM格式错误了?运行结果和他给的一样啊!s1 = {1, 2, 3, 4, 5}s2 = {6, 7, 8, 9, 10}s0 = {c for c in map(int, input().split(','))}for c in s2: if c not in s0: print(c, end=' ')

2020-05-28 10:20:18 242 1

原创 4:7-2 图的字典表示

第一次写字典题,items忘加()了,导致:invalid literal for int() with base 10:正确代码:n = int(input())a = set()e = set()c = 0for i in range(n): x = input() y = eval(x) for key,value in y.items(): a.add(key) if type(value)==dict: f

2020-05-28 09:53:56 188

原创 3: 7-26 二维数组中每行最大值和每行和

不依赖特定的矩阵,便于维护s = list(map(int, input().split()))l = len(s)r = int(l**(1/2))m = []step = 0for i in range(r): t = s[step:step+r] m.append(t) step += rfor i in m: s=sum(i) i.append(max(i)) i.append(s)for i in range(r): for

2020-05-27 21:32:06 1005

原创 3:7-28 找出不是两个数组共有的元素

注意:数字字符可以直接比较(大小、是否相同),不用先转为intjoin 只能对字符进行,int不可!定义空列表然后添加不在表中的元素进去是常用套路!!!s0 = list(input().split())s1 = list(input().split())s = []for a in s0[1:]: if a not in s1[1:] and a not in s: s.append(a)for b in s1[1:]: if b not in s0[1:]

2020-05-27 17:10:14 144

原创 3: 7-27 矩阵转置

列表推导式求转置矩阵很难理解s = list(map(int, input().split()))l = len(s)r = int(l**(1/2))m, t = [], []step = 0for i in range(r): t = s[step:r + step] step += r m.append(t)# 转置的列表推导式!!!m1 = [[row[col]for row in m]for col in range(r)]for i in range(r

2020-05-27 16:16:31 355

原创 3:7-20 判断上三角矩阵

n = int(input())for i in range(n): m = int(input()) M, temp = [], [] for j in range(m): temp = list(map(int, input().split())) M.append(temp) # 用flag表示是否上三角矩阵,好处在于一旦最内层循环被break,可根据flag值终止最外层循环 flag = 1 for k in rang

2020-05-27 15:17:25 142

原创 3:7-18 矩阵运算

n = int(input())A = []sum = 0# 注意矩阵怎么输入,这样的矩阵被转置了实际山for i in range(0, n): temp = list(map(int, input().split())) A.append(temp)for i in range(n): for j in range(n): if i != n-1 and j != n-1 and i+j != n-1: sum += A[i][j

2020-05-27 11:12:00 125

原创 7-7 统计学生平均成绩与及格人数

坑:输入0需特判,以exit(0)结束程序,否则报非0返回n = int(input())if(n == 0): print("average = 0.0") print("count = 0") exit(0)s = input().split()l = len(s)sum, cnt = 0, 0for i in range(n): sum += int(s[i])av = sum / lfor i in range(n): if int(s[i])

2020-05-26 21:08:33 1113

原创 4:7-4 验证“哥德巴赫猜想”

此题还有时间复杂度更低的方法,以后再补,(暴力破解会超时!)n = int(input())if n == 4: print('4 = 2 + 2')else: # 判断p是否素数: # 特判p==2: for j in range(2, n-2): if (n - 2) % j == 0: break else: print('{} = 2 + {}'.format(n, n - 2)) m =

2020-05-26 19:51:07 424

原创 7-12 字符串替换

# 一定要牢记list()将字符串转为单个字符组成的列表!s = list(input())l = len(s)for i in range(l): if 'A' <= s[i] <= 'Z': s[i] = chr(ord('A') + ord('Z') -ord(s[i]))s = ''.join(s)print(s)

2020-05-26 09:56:45 132

原创 7-7 求最大值及其下标

n = input()s = input().split()l = len(s)# 题目没说都为正数,所以初始max要赋右数第一个值max = int(s[l-1])for i in range(l): # 此处也可用range(0, -l, -1),对应从左数,但题目好像通不过?所以还是用递增序列吧 if int(s[l-i-1]) >= max: max = int(s[l-i-1]) t = l-i-1print(max, t)...

2020-05-26 09:07:24 175

原创 7-17 输出10个不重复的英文字母

s1 = input()#lower只能对字符串用s1 = s1.replace(' ', '')# 全换为小写以便找出重复字母s = s1.lower()l = list(s)# index返回字符第一次出现的位置l1 = [k for k in range(len(l)) if l[k] in s and l.index(l[k]) == k]s2 = ''.join([s1[k] for k in l1])if len(s2) >= 10: print(s2[:10])

2020-05-25 21:36:57 971

原创 7-5 字符转换

# 注意使用int的自动整理功能# 定义空字符串,后用append添加s = input()len = len(s)s0 = []for i in range(len): if ord('0')<= ord(s[i]) <= ord('9'): s0.append(s[i])s0 = ''.join(s0)print(int(s0))

2020-05-25 21:35:01 508

原创 7_14 求整数段和

x, y = map(int, input().split())sum = 0for i in range(x, y+1): print('{:>5}'.format(i), end='') sum += i if (i - x+1) % 5 == 0: print() # 参数为空默认换行if (i - x +1) % 5 != 0: print()print('Sum =', sum) # 多个对象间以空格分隔...

2020-05-23 23:53:28 105

原创 8_单词长度

一道很经典的字符串题,考察很细节#include<stdio.h>#include<string.h>int main(){ char s[20] = ""; while(1) { scanf("%s", s); int len = strlen(s); //这一步特别注意,怎么求最后一个字符 if(s[len-1] !='.') { printf("%d ", len); } else { printf("%d", l

2020-05-19 16:10:16 87

原创 5_念整数

/*1:先输出符号并转换成非负数,注意设置新变量保存;2: 设置mask记录数位;3:求最高位数字取整,往右移位取余;4: 多分支用switch,default可不填;5:用mask控制空格输出;*/#include<stdio.h>int main(){ int n, x, t, mask = 1; scanf("%d", &n); if(n < 0) { printf("fu "); n = -n; } t = n; while(n

2020-05-16 22:19:16 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除