复习指南(C++版)codeisking

q=a/1000%10;b=a/100%10;s=a/10%10;g=a%10;

2、冒泡排序(以升序为例)

for(i=1;i<=n;i++)for(j=1;j<=i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}

3、求素数(标签法)

4、字符图形(金字塔)

5、闰年判断

四年一闰,百年不闰,四百年又闰。

(y%4==0&&y%100!=0||y%400==0)

6、各类三角形的判别

a、b、c三边能构成三角形的条件:任意两边和大于第三边

(a+b>c&&b+c>a&&c+a>b)

a、b、c三边能构成直角三角形的条件:存在两边平方和等于第三边平方

(a*a+b*b==c*c||b*b+c*c==a*a||c*c+a*a==b*b)

a、b、c三边能构成锐角三角形的条件:任意两边平方和大于第三边平方

(a*a+b*b>c*c&&b*b+c*c>a*a&&c*c+a*a>b*b)

a、b、c三边能构成钝角三角形的条件:存在两边平方和小于第三边平方

(a*a+b*b

7、完全数

inta[5]={6,28,496,8128,33550336};

【第二层级稍加思索】

1、最大公约数、最小公倍数

2、筛法求素数

3、重要函数(内部函数)

数学函数

字符串函数

strings;cin>>s;//普通输入getline(cin,s);//整行输入

4、重要函数(内部函数)

(1)标签法求素数

(2)筛法求素数

(3)辗转相除法求GCD,LCM

【第三层级奇思妙想】

1、快速排序

2、动态规划

3、搜索

4、高精度算法

EX01字符图形生成

#includeintmain(){inti,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)putchar('');for(j=i;j>=2;j--)printf("%c",j+64);puts("A");}return0;}

EX02数学黑洞

【题目描述】任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数.重复进行上述运算,你会发现一个神秘的数.请编程把过程打印出来.输入一行:一个四位数n

输出若干行:每行为一个减法算式

样例输入1234

样例输出4321-1234=30878730-378=83528532-2358=61747641-1467=6174

#includeinta[5];intmain(){intx;scanf("%d",&x);while(x!=6174){a[1]=x/1000%10;a[2]=x/100%10;a[3]=x/10%10;a[4]=x%10;for(inti=1;i<=3;i++)for(intj=1;j<=4-i;j++)if(a[j]>a[j+1]){intt=a[j];a[j]=a[j+1];a[j+1]=t;}intmx=a[4]*1000+a[3]*100+a[2]*10+a[1];intmn=a[1]*1000+a[2]*100+a[3]*10+a[4];x=mx-mn;printf("%d-%d=%d\n",mx,mn,x);}puts("7641-1467=6174");return0;}

EX03英雄卡

【题目描述】小李非常迷恋收集各种干脆面里面的英雄卡,为此他曾经连续一个月都只吃干脆面这一种零食,但是有些稀有英雄卡真的是太难收集到了。后来某商场搞了一次英雄卡兑换活动,只要你有三张编号连续的英雄卡,你就可以换任意编号的英雄卡。小李想知道他最多可以换到几张英雄卡(新换来的英雄卡不可以再次兑换)。

输入第一行,共一个整数n,表示小李拥有的英雄卡数。第二行,共n个空格隔开的数字ai,表示英雄卡的编号。

输出输出仅有一行,共1个整数,表示小李最多可以换到的英雄卡。

样例输入6312445

样例输出1

#include#includeusingnamespacestd;intnum[100005];intmin3(inta,intb,intc){returnmin(min(a,b),c);}intmain(){inta,n,i,x=0,mx=0,mn;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a);num[a]++;mx=max(mx,a);}for(i=1;i<=mx-2;i++){mn=min3(num[i],num[i+1],num[i+2]);x+=mn;num[i+1]-=mn;num[i+2]-=mn;}printf("%d\n",x);return0;}/*201468735563358976678105*/

EX04哈夫曼编码

【题目描述】哈夫曼编码是一种编码方式,是可变字长编码的一种,由Huffman于1952年提出。该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫Huffman编码。简单地来说,就是出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的。现在请你模拟这样的原则对给定的一个字符串进行字母统计。

输入只有一行,是一个字符串,由小写英文字母组成,长度不超过255个字符。

输出有若干行,每行有两部分组成:一个字母和该字母出现的频率,中间用一个空格分隔,并按频率高低排列,频率相同时则按字母的ASC码的先后顺序排列。

样例输入soon

样例输出o2n1s1

#include#include#includeusingnamespacestd;intnum[30];intmain(){strings;cin>>s;for(inti=0;i=1;k--)for(inti=0;i<30;i++)if(num[i]==k)cout<

EX05立方和【题目描述】现给出一个三位数,先对这个三位数的各位数字的立方求和,然后再对求出的和中的各位数字的立方求和,如此一直继续下去,判断最后能否得到一个不再变化的固定值。如能得到一个固定值,就求出这个固定值;如果不能,则输出提示信息“error”。另外请注意,在求解过程中,若某一次求和过程中得到的值超过三位数,则取该数的低三位继续往下运算……例如,对于三位数111,则第一次计算应是1×1×1+1×1×1+1×1×1=3,第二次计算应是0×0×0+0×0×0+3×3×3=27,第三次计算应是0×0×0+2×2×2+7×7×7=351,第四次计算应是3×3×3+5×5×5+1×1×1=153,第五次计算应是1×1×1+5×5×5+3×3×3=153,与第四次计算的结果相同,这时可不再计算,输出固定值153。亲爱的同学,请你也来计算一下。

输入只有一行,是一个三位数。

输出也只有一行,如能得到一个固定值,则输出这个固定值;如不能,则输出一个提示信息“error”。

样例输入111

样例输出153

输入样例2:102输出样例2:error

#includeintmain(){intx,g,s,b,t,v[1000];scanf("%d",&x);while(1){t=x;//保存一遍,因为下面x会变b=x/100%10;s=x/10%10;g=x%10;x=(b*b*b+s*s*s+g*g*g)%1000;//如超过三位按三位计算if(x==t){printf("%d\n",x);break;}//与上一数相同刚输出if(v[x]==1){puts("error");break;}//出现过这个数v[x]=1;//这个数出现过}return0;}

EX06所有数字和为M的三位数【题目描述】找出数字之和为M的所有三位数

输入一行,一个整数M,1<=M<25,不考虑无解的情况

输出若干行,从小到大每行一个符合条件的数

样例输入20

样例输出106115124133142151160205214223232241250304313322331340403412421430502511520601610700

#includeintmain(){inti,j,k,a,m;scanf("%d",&m);for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i+j+k==m)printf("%d%d%d\n",i,j,k);return0;}

EX07所有数字和为M的三位数素数【题目描述】找出数字之和为M的所有三位数

输出若干行,从小到大每行一个符合条件的素数

样例输入7

样例输出

151223241313331421601

#includeintPrime(inta){if(a==1)return0;for(inti=2;i*i<=a;i++)if(a%i==0)return0;return1;}intmain(){inti,j,k,a,m;scanf("%d",&m);for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++){a=i*100+j*10+k;if(i+j+k==m&&Prime(a))printf("%d\n",a);}return0;}

EX08棋盘格数:求正、长方形个数【题目描述】设有一个N*M方格的棋盘。求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。例如:当N=2,M=3时:正方形的个数有8个:即边长为1的正方形6个;边长为2的正方形有2个。长方形的个数有10个:即2*1的长方形有4个;1*2的长方形有3个;3*1的长方形有2个;3*2的长方形有1个。

输入一行:两个整数N,M,1<=N<=100,1<=M<=100

输出两行:第一行表示正方形的个数第二行表示长方形的个数

样例输入23

样例输出810

提示数长方形包括正方形的方法:(长边上的线段数)*(宽边上的线段数)如上例(2+1)*(3+2+1)=18个;数正方形方法:长*宽+(长-1)*(宽-1)+...+(长或宽为1),如上例2*3+1*2=8个;不包括正方形的长方形为18-8=10个。

#includeintmain(){inta,b,z,c,x;scanf("%d%d",&a,&b);x=((a+1)*a*(b+1)*b)/4;//四边形个数z=0;//正方形个数while(a>0&&b>0){z+=a*b;a--;b--;}printf("%d\n%d\n",z,x-z);return0;}

EX09王小二切饼【题目描述】王小二自夸刀工不错,有人放一张大的剪饼在砧板上,问他:“饼不许离开砧板,切100刀最多能分成多少块?”王小二想知道切n刀最多能分成几块,你能帮助他吗?

输入一行:一个整数n1<=n<=100

输出一行:一个整数

样例输入1

样例输出2

提示递推公式:f[n]=f[n-1]+n

【代码1】

#includeintmain(){inta[120],n,i;a[0]=1;for(i=1;i<=100;i++)a[i]=a[i-1]+i;scanf("%d",&n);printf("%d\n",a[n]);return0;}

【代码2】

#includeintmain(){intn;scanf("%d",&n);printf("%d\n",1+(n+1)*n/2);return0;}

EX10删数【题目描述】输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使剩下的数字组成的新数最小。输出去掉数字后组成的新的正整数(N不超过240位),如果高位为0,则应去掉多余的零。输入的数据不需要判错。

输入两行:第一行:一个不超过200位的数N第二行:删除和数字个数S,S<200

输出一行:删除后的最小数

样例输入3436523

样例输出332

提示要在343652中删除3个数字,使剩下的数字最小。那么,我们第一个要删的是4,4正好处于数的下降趋势中,第二个仍然删除下降趋势的6,第三个删除5。这是一种贪心算法思想,所以本题称之为贪心删数。

#include#includeusingnamespacestd;intmain(){strings;intm,i;cin>>s>>m;while(m--){for(i=0;is[i+1])break;s.erase(i,1);}cout<

EX11乘地铁(metro)【题目描述】现在宁波市已经开通地铁了,而恰好ZYH小朋友要出去玩,不喜欢挤公交的他自然也没钱做出租车,于是地铁是一个非常好的选择。地铁的票价表可以看成一个n*n的二维表,有n行,每行n个数,第i行第j列表示从第i个站点到第j个站点的票价。现在ZYH小朋友要去m个地方,记为ai(1<=i<=m),并且他们一开始在a0号点,每次他们会从ai-1到ai,直至到达终点am。现在ZYH小朋友想知道他需要多少钱来买地铁票。

输入输入的第一行是两个用空格隔开的整数n(1<=n<=100),m(1<=m<=100)。接下来是n行的票价表,每行n个整数bi,j,(0<=bi,j<=100)。接下来的一行包含m+1个整数表示ai,即是a0~am,(1<=ai<=n)。

输出输出一个数,表示最后需要的钱数。

样例输入330121033401231

样例输出7

#includeinta[120][120],b[120];intmain(){inti,j,n,m,x=0;scanf("%d%d",&n,&m);for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&a[i][j]);for(i=0;i<=m;i++)scanf("%d",&b[i]);for(i=1;i<=m;i++)x+=a[b[i-1]][b[i]];printf("%d\n",x);return0;}

EX12分数线确定(line)

【题目描述】在模拟考试结束后不久,所有考生的分数已经汇总完成,老师们开始估计某所大学的录取分数线。分数线的划定是一个复杂的过程,但是可以根据以往录取人数进行估计。老师们的估计方法如下,先得到某所大学以往的录取人数,k人。那么总分在前k名的同学都可以进入这所大学,第k名同学的分数就被作为分数线。但是考试中往往有分数相同的人,若分数线上的人有多名,那么这些同学将同时被录取,录取人数可能超过k人。现在校长想要知道某所学校的分数线,以及实际可以录取的人数。

输入第一行两个整数n和k,分别表示参加考试的人数和以往录取人数k。接下来n行,每行1个整数,表示每位同学的总分。

输出一行,两个整数,第一个是录取分数线,第二个表示实际录取的人数。两个数之间用一个空格分开。

样例输入63721612603658598612

样例输出6124

提示【说明】前3名分别为721,658,612,分数线划定为612,而612共有2人,那么一共可以录取4人【数据范围】对于50%的数据:1<=k<=n<=1000,每个人分数x的范围0<=x<=1000.对于100%的数据:1<=k<=n<=100000。每个人分数x的范围0<=x<=100000000

#include#include#includeusingnamespacestd;inta[1000005];boolcmp(constint&a,constint&b){returna>b;}intmain(){intn,i,k,f,r;scanf("%d%d",&n,&k);for(i=0;i

EX13最大公约数与最小公倍数

【题目描述】两个正整数的最大公约数是G,最小公倍数是L,它们的和最小是多少?

输入两个不大于10000的正整数G和L,中间用单个空格隔开。数据保证L是G的倍数。

输出一个正整数,即最小的和。

样例输入14280

样例输出126

#include#include#includeusingnamespacestd;intmain(){intG,L,c;scanf("%d%d",&G,&L);c=L/G;for(inti=(int)sqrt(c);i>=1;i--)if(c%i==0&&__gcd(i,c/i)==1){printf("%d\n",G*(i+c/i));return0;}}

EX14彩票中奖(lottery.pas/c/cpp)

【题目描述】小明想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法:超级大乐透是指由购买者从01—35共35个号码中选取5个号码为前区号码,并从01—12共12个号码中选取2个号码为后区号码组合为一注彩票进行的投注。每注金额人民币2元。小明打算用自己的零花钱去试试运气,选择了一组心目中的幸运数字,买了一张彩票。如下图:

两天后,中奖号码公布,小明开始研究到底中了多少奖金。获奖方式如上右图:例如,中4+2就表示前区有4个数字相同,后区2个数字相同,获得三等奖,奖金3000元。

对照中奖号码对小明来说是一个头疼的问题,他找到你,希望你帮忙写一个程序,只要输入彩票号码和开奖号码,就可以知道奖金值。

输入第一行7个整数,表示小明购买的彩票号码。前5个为前区号码,范围在1到35,保证不会重复;后2个为后区号码,范围在1到12,保证不重复。第二行7个整数,表示开奖号码,前5个为前区中奖号码,范围在1到35,保证不重复且保证有序;后2个为后区号码,范围在1到12,保证不重复且有序。注意,前区和后区是分开选数的,前区的数字可以和后区的数字相同。

输出输出小明的中奖金额,未中奖输出0。

样例输入27814186112781418611

样例输出5000000提示【样例1解释】前5加后2都相同,中一等奖,奖金为500万。

【输入输出样例2】lottery.in2781418611111141825611lottery.out10【样例2解释】前区有14和18两个数字相同,后区6和11都相同,对照表格,中奖2+2为五等奖,奖金10元。

【数据范围】对于40%的数据,若小明的号码与中奖号码相同,那么其位置也是相同的。例如中奖号码10位于第三个数,那么小明的彩票中如果出现10,也肯定在第三个数。对于前70%的数据,小明的号码是系统产生的,前区和后区都是从小到大给出的。对于最后30%的数据,小明的号码可能是手写的,前区或后区的数字不一定有序。

#includeintx[10],y[10],t[10][10];intmain(){inta,b,i,j,u=0,v=0;t[5][2]=5000000;t[5][1]=250000;t[5][0]=t[4][2]=3000;t[4][1]=t[3][2]=200;t[4][0]=t[3][1]=t[2][2]=10;t[3][0]=t[1][2]=t[2][1]=t[0][2]=5;for(i=1;i<=7;i++)scanf("%d",&x[i]);for(i=1;i<=7;i++)scanf("%d",&y[i]);for(i=1;i<=5;i++)for(j=1;j<=5;j++)if(x[i]==y[j])u++;for(i=6;i<=7;i++)for(j=6;j<=7;j++)if(x[i]==y[j])v++;printf("%d\n",t[u][v]);return0;}

EX15足球联赛【题目描述】在足球比赛中,各国主要以联赛方式进行:联赛中,每个队伍都会两两进行主客场交手,获得胜利的队伍全取3分;失利的队伍不得分;若双方战平,则各得1分。而统计球队的积分,则难坏了小明,他想要请你开发一个软件,帮他统计一下整个赛季结束之后各个球队的积分情况,以便向外界公布。

输入第一行一个整数N,表示共有N个球队。2<=N<=50.接下来N行,表示每个球队在主场作战的情况。每行共N个元素,“W”表示主队获胜,“D”表示双方战平,“L”表示主队失利。自己和自己用“-”表示。

输出共1行:N个数,表示N个球队的积分情况,中间用空格分隔,最后一个球队后不要有空格。

样例输入13-WWW-WWW-

样例输出666

提示

输入样例23-DDL-LWD-输出样例2:528第一个球队,主场2平,客场一胜一负,共积5分。第二个球队主场全负,客场两平,积2分。第三个球队主场一胜一平,客场一胜一平,积8分。

#includeusingnamespacestd;intx[60];intmain(){inti,j,n;charc;cin>>n;for(i=1;i<=n;i++)for(j=1;j<=n;j++){cin>>c;if(c=='W')x[i]+=3;if(c=='L')x[j]+=3;if(c=='D'){x[i]++;x[j]++;}}for(i=1;i<=n-1;i++)cout<

#include#includeusingnamespacestd;inta[30];intmain(){inti,n,k,x=0;scanf("%d%d",&k,&n);for(i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+n+1);for(i=1;i<=n;i++)if(a[i]-a[i-1]<=k)x++;elsebreak;printf("%d\n",x);return0;}

EX17jz1066【入门】一年中的第几天【题目描述】给定一个具体的日期,请输出,这一天是当年的第几天?输入输入一行,为年-月-日,输出输出一行,只有一个整数,表示这一天为那一年的第多少天样例输入2000-1-31样例输出31

#includeinta[12]={0,31,28,31,30,31,30,31,31,30,31,30};intmain(){inty,m,d,x=0;scanf("%d-%d-%d",&y,&m,&d);for(inti=1;i<=m-1;i++)x+=a[i];x+=d;if((y%4==0&&y%100!=0||y%400==0)&&m>2)x++;printf("%d\n",x);return0;}

THE END
1.福彩3D组选3投注策略:细分组合,精准投资福彩3D的组选3投注是一种常见的玩法,它包括所有三个数字中有两个相同的组合。通过将这90种组合细分为十类,并结合冷热情况,彩民可以选择其中一类或几类进行全包追加翻倍投注,以较少的资金获得丰厚的回报。 组选3细分组合 独1包9:选定1个“1”,另外两个号码相同。组合有100、122、133、、199,全包18元。独https://www.17500.cn/arts/sdetail-11224811.html
2.创业圣经《从0到1》读书笔记合集创新思维: 海纳百川的开放思想等同于创新的思维,且作为一个企业家你需要持续的寻找最新的问题解决方法,策略,以及通向伟大的创意。请保持一个开放的思想来挖掘出崭新的创意和流程。 第4点:真理往往是掌握在少数人手上的 在我们人类的历史进程中,无数的例子表明只有那20%的“叛逆“的人能够逆风而行,冒天下之大不https://blog.csdn.net/zhubaitian/article/details/44606359
3.彩票中奖兑奖流程彩票大奖兑奖注意事项→MAIGOO知识从对彩票规则来看,无论彩民中多少,以哪种形式兑奖,去哪里兑奖都需要手持中奖彩票的。那么彩票丢了,哪些证据比较价值呢?比如说,最直接的证据——照片和录像。现在的彩票店都装有监控摄线头,若你购买彩票的时间与摄像头时间一致。前提是你买彩票的记录可以从监控录像中找到,而你又照了照片,这样是也可作为一个比较有https://www.maigoo.com/goomai/228703.html
4.3D我们买彩都想中大奖,那怕是多50元也好,但经过这样一精简,花一样的钱,所得却是不一样的,其实我们要保持平常心态去买彩,不要想到今天要赚多少,只要能保本就已是万幸了,彩票上的奖金只给了10%的人,我们不要太向往那10%,没那么简单的,任何一种彩发行之前都是经过无数次验算的,并不是花大钱包多注号就能赚https://www.360doc.cn/mip/63024184.html
5.3个号码都买对了却没中奖?福彩3d组三和组六如何判断呢?,社会,彩票还有一种号是豹子! 组不按顺序! 单必须按顺序,要对号对位! 组三是有一组对子! 豹子是全同号,(三数一样)! 组六是全不同号! 这个我都知道,800年了。就不知道咋能中大奖! 买了这么些年就中过两次3d单选 2天前1回复 恋爱脑德华 俺可不懂这些,俺就知道老老实实干活挣钱,啥彩票不彩票的。 3天前1回复https://haokan.baidu.com/v?pd=wisenatural&vid=10180105681738912136
6.疆内彩闻——新疆福利彩票网复式投注是指所选号码个数超过单式投注的号码个数,所选号码可组合为每一种单式投注方式的多注彩票的投注。 胆拖投注指先选取少于单式投注号码个数的号码作为每注都有的胆码,再选取除胆码以外的号码作为拖码,胆码与拖码个数之和必须多于单式投注号码个数,由胆码与拖码的每一种组合按单式投注方式组成多注彩票的投注。http://www.xjflcp.com/article/2020/12/29/c_70475.htm
7.8点1氪丨民政部通报2.2亿元彩票中奖者无须缴纳个人所得税;娃哈哈TOP3大新闻 民政部公布福利彩票2.2亿大奖有关情况通报 近日,江西一彩民买福利彩票中出2.2亿多元大奖,引起广泛关注。民政部对此高度重视,派出工作组赴江西省南昌市和中国福利彩票发行管理中心进行了认真核查,并与有关部门沟通核查结果、彩票涉税政策等事宜。 https://36kr.com/p/2660329041012486