随笔分类 -  Pat-算法笔记的笔记

Pat从入门到放弃
摘要:找出来字符串相同的尾字符,如果没有相同的尾字符,输出nai pat的黑盒单点测试系统不接受get(),需要使用iostream里的getline函数 格式:cin.getline(s[i](数组名,二维数组的话给出行标),数组长度二维数组的列长度); 字符串倒置函数:reverse(s[i]数组名, 阅读全文
posted @ 2019-12-30 14:44 老葛 阅读(201) 评论(0) 推荐(0)
摘要:把字符串里指定的字母改成指定的值。 用二维数组或者结构体。一开始使用的string字符串,但切割成数组的时候可能出现问题导致一个点过不去。 所以还是用结构体吧。 题目本身不难。 注:%s是通过空白符来截断字符串的,包括空格。 1 #include <iostream> 2 #include <cst 阅读全文
posted @ 2019-12-29 21:47 老葛 阅读(141) 评论(0) 推荐(0)
摘要:输出输入的n位整数的每一位之和的英文,注意一下输出的数组嵌套。 1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 string num[10]={"zero","one","two","thr 阅读全文
posted @ 2019-12-28 23:26 老葛 阅读(172) 评论(0) 推荐(0)
摘要:科学计数法转化为普通表示。 需要想清楚指数的符号以及0和小数点的位置及个数。 1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 string str; 6 cin>>str; 7 int le 阅读全文
posted @ 2019-12-28 13:31 老葛 阅读(171) 评论(0) 推荐(0)
摘要:字符串数组的对比。 如果使用char数组的话需要使用二维数组,因此混用string数组,需要#include<iostream> 判断string数组的长度:int len=str.length(); 常用的ASCII码: A-Z 65-90 a-z 79-122 0-9 48-57 空格 32 共 阅读全文
posted @ 2019-12-27 16:10 老葛 阅读(144) 评论(0) 推荐(0)
摘要:霍格沃茨智障的的货币进制系统,就两个数相加,进位加1 即可 鉴于给出的范围,int就够了。 1 #include<cstdio> 2 int main(){ 3 int gal=0,sic=0,nut=0,g,s,n; 4 for(int i=0;i<2;i++){ 5 scanf("%d.%d.% 阅读全文
posted @ 2019-12-27 11:52 老葛 阅读(173) 评论(0) 推荐(0)
摘要:十进制转化为13进制 1 #include <cstdio> 2 using namespace std; 3 int main() { 4 char c[14] = {"0123456789ABC"}; 5 printf("#"); 6 for(int i = 0; i < 3; i++) { 7 阅读全文
posted @ 2019-12-27 11:23 老葛 阅读(185) 评论(0) 推荐(0)
摘要:将一个十进制数转化为n进制数,如果转化后是回文数(如1234321),则打印yes,反之则打印no 重点是进制转化的方法。 1 #include<cstdio> 2 int main(){ 3 int a,b; 4 int arr[40],index=0; 5 scanf("%d%d",&a,&b) 阅读全文
posted @ 2019-12-27 10:15 老葛 阅读(171) 评论(0) 推荐(0)
摘要:画图,用二维数组作为画布 1 #include<cstdio> 2 #include<string.h> 3 int main(){ 4 char c[81],u[30][30]; 5 scanf("%s",&c); 6 memset(u,' ',sizeof(u)); 7 int n=strlen 阅读全文
posted @ 2019-12-24 20:20 老葛 阅读(150) 评论(0) 推荐(0)
摘要:输入n行不同学生的name性别id和成绩,输出成绩最高的女生名字和id,成绩最低的男生名字和id求出二者的差 如果有性别缺少,输出Absent并在结果行输出NA 注意变量不要搞混,可以用结构体……不过似乎没有太大必要性 1 #include <cstdio> 2 #include <string.h 阅读全文
posted @ 2019-12-24 13:07 老葛 阅读(156) 评论(0) 推荐(0)
摘要:输入n行员工id以及到达和离开的时间,输出最早到达的员工的id和最晚离开的员工的id 注:字符串赋值函数strcpy(目标字符串,原字符串)字符串之间的赋值使用该函数,需要#include<string.h> 1 #include<cstdio> 2 #include<string.h> 3 int 阅读全文
posted @ 2019-12-24 11:49 老葛 阅读(188) 评论(0) 推荐(0)
摘要:找最大的,然后按规定计算后输出。 没啥可说的,除非犯了愚蠢的错误(比如把j写成i这种),按题目要求写就是了。 1 #include<cstdio> 2 int main(){ 3 char A[4]={'W','T','L'}; 4 double sum=1.0,temp; 5 int cont=0 阅读全文
posted @ 2019-12-22 21:52 老葛 阅读(264) 评论(0) 推荐(0)
摘要:两个多项式的乘积 两个数组,一个放多项式1,一个放结果 注意:arr2[j+exp]+=arr1[j]*coe; 因为有指数相加相同的情况下需要合并系数 1 #include<cstdio> 2 int main(){ 3 double arr1[1001]={0.0},arr2[2001]={0. 阅读全文
posted @ 2019-12-20 21:11 老葛 阅读(385) 评论(0) 推荐(0)
摘要:多项式相加,按非零项个数,指数,系数输入两个n项多项式,合并同类项之后输出。 用数组编号保存指数,编号对应的数组值保存系数,相加之后用count记录非零项的个数,最后输出。 数组最大1000个,如果有10000个呢?是否能用链表做? 1 #include<cstdio> 2 int main(){ 阅读全文
posted @ 2019-12-20 20:08 老葛 阅读(203) 评论(0) 推荐(0)
摘要:判断两数相加是否大于第三数,大于输出true,否则输出false(相等也是false) 1 需要注意数字溢出的问题; 2 先判断溢出,因为在a,b都是负数最小值的情况下,相加直接是正数,在c较小的时候会导致结果出错。 1 #include<cstdio> 2 #include<iostream> 3 阅读全文
posted @ 2019-12-20 16:35 老葛 阅读(160) 评论(0) 推荐(0)
摘要:n个节点围成一个环,每个节点之间的距离已知。输入n并给出n个节点的距离,输入m组节点编号(两个),求这两个节点编号间的最短距离。 1 建立dis[]数组,记录V1点到每一个点的顺时针距离,sum计算环的总距离。 2 输入m组节点编号,如果左边的值大于右边的值,则使用swap()函数将其交换。 3 计 阅读全文
posted @ 2019-12-20 15:13 老葛 阅读(218) 评论(0) 推荐(0)
摘要:洗牌,共洗k次,每次将将原先的牌洗进输入好的位置。 步骤: 1 设置次数k,输入位置数列next[55],填充初始牌序start[55]; 2 end[next[i]]=start[i]把新的牌序赋值给end数组,并将end数组重新赋值给start数组,共重复k次; 3 由于设置的花色数组mp[5] 阅读全文
posted @ 2019-12-19 17:54 老葛 阅读(213) 评论(0) 推荐(0)
摘要:两数相加,结果每三位添加一个逗号。一开始没有注意到%03d的问题,因为有某些数据逗号分割后高位带0,因此需要用0来补充空位。 1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int main(){ 5 int a,b 阅读全文
posted @ 2019-12-16 18:53 老葛 阅读(207) 评论(0) 推荐(0)
摘要:用一串数拼接成一个数,输出最小的。 思路:使用string和相关的函数。 阅读全文
posted @ 2019-02-17 17:32 老葛 阅读(144) 评论(0) 推荐(0)
摘要:给两个序列,一一对应相乘,求最大和。 0不算数,输入时按正负共分为4个数组。 阅读全文
posted @ 2019-02-17 15:43 老葛 阅读(191) 评论(0) 推荐(0)