- 博客(39)
- 收藏
- 关注
原创 Python新手之入门准备:Python、Pycharm安装和环境配置
摘要:搭建python编程环境,并运行简单代码。(环境:windows10 64位)目录一、安装Python解释器一、安装Python解释器1.进入Python官网,点击Download并选择合适的版本。2.下载安装包,可以自行根据手头教材的需要选择相适应的版本。(我安装的是3.6.8版本→www.python.org/downloads/release/python-368/ 可以修改网址最后的数字直接到达对应版本,368就代表3.6.8)3.安装步骤。..
2021-04-27 21:40:30 382
原创 A1073/B1024
Scientific Notation(20分)单词:scientific notation:科学计数法 notation:符号,记号 trailing:尾部的 the fractional portion:小数部分 the integer portion has exactly one digit, there is at least one digit in the fractional portion: 整数部分只有 1 位,小数部分至少有 1 位总结:代码:/...
2020-08-12 16:24:42 115
原创 B1002
写出这个数(20分)总结:代码:#include <iostream>#include <cstring>using namespace std;int main(){ string num[10]={"ling","yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; string s; cin >> s; int sum = 0; //100位9相加 最大为900 fo..
2020-07-10 16:49:04 149
原创 B1031
查验身份证(15分)总结:两个判定:①前17位,全为数字。 ②第18位与校验码匹配。两者全满足为正常身份证号。 相反,①不满足或者(||)②不满足,都为错误号码,直接输出。 字符型数字→整型数字的转换:s[i]- '0'。 例如'7'-'0'→7 本题对结尾有无空格或换行无要求。代码:#include <iostream>#include <cstring>using namespace std;int main(){ string s; i...
2020-07-08 21:52:36 131
原创 B1021
个位数统计(15分)总结:1000位数字,远超出整型存储范围,用string存储。 关于string:例string s;s.length():直接得出字符串长度,即所有字符个数 s[i]:下标i存储的内容。i的范围是[0,length-1]。 字符型数字→整型数字的转换:s[i] - '0'。 例如 '9'-'0'→0代码:#include <iostream>#include <cstring>using namespace std;int m..
2020-07-08 17:38:11 140 1
原创 B1006
换个格式输出整数(15分)总结:高位向低位输出。代码:#include <cstdio> int main(){ int n; scanf("%d", &n); for(int i=0; i<n/100; i++) printf("B"); n %= 100; for(int i=0; i<n/10; i++) printf("S"); for(int i=1; i<=n%10; i++) printf("%d".
2020-07-08 17:03:46 159
原创 A1058
A+B in Hogwarts(20分)总结:简单的进制转化。类似B1037 g→s是17,s→p是29,进制转化不相同。代码:#include <cstdio>int main(){ int gp, sp, kp, ga, sa, ka; int g, s, k; scanf("%d.%d.%d", &gp, &sp, &kp); scanf("%d.%d.%d", &ga, &sa, &ka); k = kp .
2020-07-08 16:28:41 94
原创 A1027
Colors in Mars(20分)总结:进制转换,10进制→13进制,只有两位数直接输出即可,num/13为高位,num%13为低位。 输出转换使用char数组。 因为1直接计算两位结果,所以不需要补齐0。单纯一提,控制输出可以用%02d,表示输出2位,不足用0补齐。代码:#include <cstdio>char c[14]={"0123456789ABC"};int main(){ /*第一次用了数组存R/G/B 后发现无需数组存储 边输入边处理即可 ..
2020-07-08 15:48:37 169
原创 B1037
在霍格沃茨找零钱(20分)总结:计算从低位到高位,低位可以向高位借位。 命名空间std里有swap(a,b)函数,需要头文件#include <iostream>和using namespace std;代码:#include <cstdio>void Swap(int &a,int &b){ int temp; temp = a; a = b; b = temp;} int main(){ int gp, sp, kp, g..
2020-07-07 19:35:15 159
原创 A1031
Hello World for U(20分)总结1:题目给明了n1+n2+n3=字符串长度+2,就说明了n1,n2,n3是有重叠的,画图会清晰很多。(一开始没注意按不重叠算,其余测试数据都通过,测试点5会出错。还是认真读题!) 记n1=n2=x(含底部一行的字符),已知2x+n2=N+2,n2>=x,结合画图U字,易得x取(N+2)/3。 不含底部的竖直部分为(N+2)/3-1,也是我的代码中定义的k的含义。不同的k和bot的定义会导致输出部分的条件判定不同,但大体上是一样的。 特例:.
2020-07-07 17:51:01 104
原创 B1027
打印沙漏(20分)总结:画图理解:沙漏分为上下两个三角。整个沙漏2*M-1行,总数2M^2-1。(正三角:第i行的数量为2i-1。M行的三角总数为M^2;倒三角类似。) 直接用公式求M,用sqrt函数求平方根,使用强制类型转换或者floor函数向下取整。(头文件:#include <cmath>) (尽可能多的使用,即M取尽可能大。)或者N<=1000,直接for循环0→N挨个尝试,取最大的满足条件的M。代码:#include <cstdio>#inc..
2020-07-07 15:35:08 103
原创 A1036
Boys vs Girls(25分)总结:最低M分数初始化为101,最高F分数初始化为-1;因为分数范围[0,100],0和100可以取到。代码:#include <iostream>#include <cstring>using namespace std;int main(){ int n, grade, max=-1, min=101 ;//初始化 char gender; string name, id, maxname="Absent", .
2020-07-07 14:38:42 103
原创 A1006
Sign In and Sign Out(25分)单词:总结:代码:#include <cstdio>int main(){ return 0;}
2020-07-07 13:43:25 86
原创 A1011
World Cup Betting(20分)单词:odds: 概率,投注赔率 The winner's odd would bethe product of the three odds times 65%: 赢家的赔率是(选择的)三个赔率的乘积再乘以65%总结:边输入边输出:一组数据(一行三个数)输入完毕, 立即输出三个数中最大的,并进行累乘。 max初值取0.65 或者 1.0需要再*0.65。代码:#include <cstdio> double Fi...
2020-07-06 22:25:48 121
原创 B1028
人口普查(20分)总结: 使用string类型存储出生年月,可以直接比较大小。string大小:从前向后,比较字典序。代码:#include <iostream>#include <cstring>using namespace std; int main(){ int n, cnt=0; string birth, first = "1814/09/05", last = "2014/09/07"; //yyyy/mm/dd格式 stri...
2020-07-06 19:49:20 106
原创 A1009
Product of Polynomials(25分)单词:the product ofAandB:A和B的乘积总结:a[1001]:第一个多项式。无需存第二个多项式,可边输入边得出结果。 m[2001]:结果。x^1000 *x^1000 =x^2000,相乘指数可达2000,数组开到2001。 格式:double类型输入%lf,输出%f。格式控制%.1f,保留一位小数。代码 :#include<cstdio>int main(){ double ...
2020-07-05 21:36:17 344
原创 A1002
A+B for Polynomials(25分)单词:polynomials:多项式 coefficient:系数 exponent:指数 nonzero term:非零项 be accurate to 1 decimal place:精确到一位小数 decimal:小数;十进制的总结:设立数组m,长度为指数e最大值+1,下标与指数一一对应,存储对应的系数。 ...
2020-07-05 20:37:30 145
原创 B1010
一元多项式求导(25分)总结:特例:如1 0:只有常数项,结果输出 0 0。因为指数递减,在第一个if进行判断即可。 非特例:常数项导数为0,不输出。 while(scanf("%d %d", &c, &n) != EOF ) 或者while (cin >> a >> b)控制,输入结束时终止。代码:#include<cstdio>//指数都为正 int main(){ int c, n; scanf("%d %...
2020-07-05 17:07:07 190
原创 A1065
1065A+B and C (64bit)(20分)总结:A和B范围:[-2^63, 2^63],暂不考虑取到2^63,可使用long long型存储,范围为[-2^63, 2^63-1]。 [-2^63, 2^63-1]内两个数加法会产生溢出:A>0,B<0 或 A<0,B>0时,A、B异号,不会溢出。 A>0,B>0时,可能正溢出,sum范围[2, 2^64-2],其中[2^63, 2^64-2]部分溢出,实际结果为[2^63-2^64, 2^64...
2020-07-05 16:25:38 187
原创 A1046
Shortest Distance(20分)总结:代码:#include<cstdio>const int MAXN = 100001;const int MAXM = 10001;int d[MAXN] ,dis[MAXN] ;int fin[MAXM];int min(int a, int b){ if(a>b) return b; else return a; }int main(){ int n; scanf("%d", &..
2020-07-05 15:43:42 113
原创 A1042
Shuffling Machine(20分)单词:shuffling:洗牌 position:位置 the number at thei-th position isj, it means to move the card from positionito positionj: 第i个位置上是j,表示移动第i个位置上的数字→第j个位置。(即order[ i ] = j, 那么end[ j ]=start[ i ])。总结:利用char数组控制输出,char m...
2020-07-04 18:12:29 2211
原创 B1018
锤子剪刀布(20分)总结:涉及char的读入遇到换行,注意getchar();吃掉换行。 或者改为scanf("\n%c %c", &a,&b); 吃掉多余换行符。代码:#include<cstdio>int main(){ int n; scanf("%d", &n); int wa, ta, la, wb, tb, lb; wa = ta = la = wb = tb = lb = 0; int wina[3]={0}, winb..
2020-07-04 16:53:10 114
原创 B1012
数字分类(20分)总结:用数组存放五类数字的结果(a[5])和个数(count[5] 判断是否存在(=0))。 输出结尾无空格。代码:#include<stdio.h>int main(){ int n; scanf("%d", &n); int i; int a[5]={0}, count[5]={0}; int max=0; for(i=0; i<n; i++){ int temp; scanf("%d", &temp); .
2020-07-04 16:37:21 118
原创 B1008
数组元素循环右移问题(20分)总结:注意右移m位,相当于原数组没有移动,所以对m进行处理,m = m%n。代码:#include<cstdio>int main(){ int n,m; scanf("%d%d", &n,&m); int a[100]; int i; for(i=0; i<n; i++){ scanf("%d", &a[i]); } m = m%n; //m值修正 if(m==0){ print.
2020-07-04 16:30:01 108
原创 B1046
划拳(15分)总结:注意判断条件,同输同赢不计。代码:#include<cstdio>int main(){ int n; scanf("%d", &n); int i; int ca=0, cb=0, a1,a2, b1,b2; for(i=0; i<n; i++){ scanf("%d%d%d%d", &a1, &a2, &b1, &b2); if( a2 == a1+b1){ //甲猜中 if.
2020-07-03 22:29:35 100
原创 B1026
程序运行时间(15分)总结:四舍五入判定:①round函数 (直接,但涉及数据类型转化,麻烦) ②根据题意,(c2-c1)/100四舍五入即余数满50进一,不满50舍去,令time= ((c2-c1) + 50) / 100即可。代码:#include<cstdio>#include<cmath>const int CLK_TCK = 100;int main(){ int c1, c2; scan...
2020-07-03 22:23:03 116
原创 B1016
总结:10^10超过了int范围(10^9),使用long long类型。 Or 使用string类型,判断da和a[i]相等条件:当da == ( a[i]- ‘0’ )。(‘1’- ‘0’=1:字符型‘1’→整型数字1。)代码:#include<cstdio>int main(){ long long a, da, b, db; scanf("%lld%lld%lld%lld", &a, &da, &b, &db); long lon.
2020-07-03 22:00:19 118
原创 B1011
A+B 和 C(15分)总结:int型数据范围[-2^31,2^31-1]。(4字节,32位,10^9之内) long long型数据范围[-2^63,2^63-1]。(8字节,64位,10^18之内) 本题超出int范围,使用long long型(%lld)。代码:#include<cstdio>int main(){ int t; scanf("%d", &t); int i; for(i=0; i<t;i++){ long long ..
2020-07-03 21:32:27 103
原创 B1009
说反话(20分)总结:依次读入单词(空格为分隔符),再逆序输出。 (代码1)二维字符数组char str[80][80]存储。 (代码2)①利用C++中的栈(先进后出),需要头文件#include <stack>和using namespace std;。 ②使用String类处理字符串,必须用cin,cout输入和输出,需要头文件#include <iostream> 。 4. 注意结尾不输出空格的处理...
2020-07-03 21:15:25 477
原创 B1022
D进制的A+B(20分)总结:除基(转换成的进制)取余,结果存放数组,输入顺序为低位→高位。 存放数组范围:A、B范围→A+B<2^31, 进制最小为2,最多31位。 特殊情况:A+B=0。①直接输出0。 ②do...while...循环,先进行一次运算。代码:#include <cstdio>int main(){ int a,b,d; scanf("%d %d %d", &a, &b, &d); int r[31]; //至少3..
2020-07-03 14:44:10 102
原创 B1036
跟奥巴马一起编程(15分)总结:1.按题目条件,直接打印。2.四舍五入:①使用round函数,需要头文件#include <cmath>。注意类型round(double , double ),返回值也为double。②分析:偶数可以整除,奇数/2 四舍五入即是(col+1)/2 或 col/2 + col%2。3.注意第二个输入字符,类型char,格式符%c。代码:#include <cstdio> #include <cmat...
2020-07-03 12:57:04 166
原创 B1032
挖掘机技术哪家强(20分)总结:按照题目要求, 定义最大参赛人数MAXN, 直接分配出长度MAXN的数组空间。 使用动态数组vector,必须有头文件#include<vector>和using namespace std;。代码:#include<cstdio>#include<vector>using namespace std;//const int MAXN = 100001;int main(){ int n; sca...
2020-07-02 21:53:37 111
原创 B1001
害死人不偿命的(3n+1)猜想 (15分)`n%2!=0`代表是奇数,if的判断条件里`!=0`可省略。代码:#include<cstdio>int main(){ int count = 0, n; scanf("%d", &n); while(n!=1){ if(n%2) n = (3*n+1)/2; else n /= 2; count++; } printf("%d", count); return 0;}...
2020-07-02 20:57:09 854 1
原创 Week1编程练习
1.最大子列和问题代码概述:1.三种方法:穷举、分治、在线处理2.穷举法:计算所有可能子列和,比较大小3.分治法:分解问题,求左边最大子列和、右边最大子列和、跨越边界最大子列和三者中的最大。4.在线处理:每输入一次,进行一次即时处理。注意:1.分治法中子问题最小为“一个元素”,即终止条件left==right。2.分治法计算跨越边界的子列和时注意,一个从中间向左边扫描left←mid,一个从中间向右边扫描mid+1→right。3.分治法初始头尾是0和k-1(数组下标范围)。代
2020-07-02 20:26:06 1155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人