
PTA
嘴角上扬*
渴求力量的家伙毫无疑问地都在追求着战斗!-更木剑八
展开
-
PTA乙级1017A除以B
思路通过字符串读取大数,然后模拟除法过程,如果在算除法的过程中够除的情况下就直接输出,否则就继续向后找数字,另外如果a<b的情况下也需要讨论AC代码#include<iostream>#include<string>using namespace std;int main(){ string s; int b; int q=0,r=0; cin>>s>>b; for(int i=0;i<s.length();i++)原创 2021-05-23 21:21:24 · 111 阅读 · 0 评论 -
PTA乙级1016部分A+B
思路:通过string字符串容器和char类型分别读入原来的数和要找的数字,通过遍历寻找的办法找到后加和,最后两者相加AC代码#include<iostream>#include<algorithm>#include<string>using namespace std;int main(){ string a,c; char b,d; int s1=0,s2=0; cin>>a>>b>>c>>原创 2021-05-23 20:40:16 · 78 阅读 · 0 评论 -
德才论
思路 没什么特别之处,我的想法是用四个数组分别存储,另一个数组进行读入,其实也可以不用数组直接用一个变量就可以,另外输出的时候记得用printf否则有可能会占用时间#####AC代码#include<iostream>#include<algorithm>#include<string>#include<cmath>#include<cstdio>using namespace std;int N,L,H;struct原创 2021-05-21 21:47:52 · 71 阅读 · 0 评论 -
福尔摩斯的约会(C++)
思路: 用map存储星期,用flag来判断是否第一个星期已经判断完毕,并且在判断完成第二个 时 ,要记得breakAC代码#include<iostream>#include<algorithm>#include<map> using namespace std;string s1,s2,s3,s4,s5;map<int,string>ti;int main(){ cin>>s1>>s2>>原创 2021-05-20 22:12:07 · 99 阅读 · 0 评论 -
PTA乙级1003
数素数AC代码 #include<iostream> #include<algorithm> using namespace std;int getprime(int n){ if(n==0||n==1) return 0; for(int i=2;i*i<=n;i++) { if(n%i==0) return 0; } return 1;}int main(){ int a ,b; cin>>a>&g原创 2021-05-17 21:11:41 · 80 阅读 · 0 评论 -
PTA乙级1012
注意点 第二个交错求和要用个数来记录是否有数字满足 而不是判断是否为0 否则有一个点不过AC代码#include<iostream>using namespace std;int a1,a2,a3,a4,a5;int fl=1;int maxx=-1;int i,j,k;int main(){ int n; cin>>n; int x; while(n--) { cin>>x; if(x%5==0) { if(x%原创 2021-05-17 20:23:02 · 90 阅读 · 0 评论 -
PTA乙级1011
AC代码思路用printf输出会更加舒服一点,求a+b>c,只需要判定a+b-c>0就可以 #include<iostream> #include<cstdio> using namespace std; int main() { int n,i=1; cin>>n; long long int a,b,c; while(n--) { cin>>a>>b>>c; if(原创 2021-05-17 13:55:52 · 80 阅读 · 0 评论 -
PTA乙级1010
注意: 因为题目说了,零多项式要输出“0 0”,所以要单独特判一下是不是零多项式AC代码#include <stdio.h>#include <stdlib.h>int main(){ int m,n,flag=0; while(scanf("%d %d",&m,&n)!=EOF){ if(n>0){ if(flag==0){ printf("%d %d",m*n,n-1);原创 2021-05-17 13:46:26 · 131 阅读 · 0 评论 -
PTA说反话(C版本和C++版本)
C版本AC代码#include<stdio.h>#include<stdlib.h>char a[100][100];int main(){ int i=0; while(scanf("%s",a[i])!=EOF) i++; for(int j=i-1;j>=0;j--) { printf("%s",a[j]); if(j>0) printf(" "); else printf("\n"); } return 0;}原创 2021-05-17 00:38:56 · 219 阅读 · 0 评论 -
PTA乙级1008数组右移问题(c++)
思路:比如输入了 1 2 3 4 5 6,要右移两位,则翻转后两位变成 1 2 3 4 6 5 再反转前四位 4 3 2 1 6 5,在整体翻转 5 6 1 2 3 4实现数组右移操作;当然也可以直接输出注意 :这里有个问题就是数据里有m>n的情况,所以我们要令m对n取余,才可以取得满分AC代码1#include<iostream>#include<algorithm>using namespace std;int a[120];int main(.原创 2021-05-16 23:57:14 · 183 阅读 · 0 评论 -
PTA乙级1007素数对猜想
分析先用筛选法求N=100010以内的素数,然后再将所有素数转移到另外一个数组,判断n以内满足条件的有多少个,暴力求解AC代码#include<iostream>using namespace std;const int N=100010;int a[N], b[N], cnt,n;int main(){ cin>>n; for(int i=2;i*i<=N;i++) { for(int j=i*i;j<=N;j+=i) { .原创 2021-04-24 18:48:50 · 96 阅读 · 0 评论 -
PTA乙级 1006 换个格式输出整数
思路分析首先题目明确了此题是最多三位数字,那就变得十分清楚了,直接上代码AC代码#include<iostream>using namespace std;int num1,num2,num3;//分别代表百位,十位,个位 int num;//代表输入的数字 int main(){ cin>>num; num1=num/100;//求百位数字 num2=num/10%10;//求十位数字 num3=num%10;//求个位数字 wh.原创 2021-04-24 17:32:15 · 131 阅读 · 0 评论 -
PTA乙级1005 继续3n+1猜想
思路用vector容器建立一个数组进行读入,边读入边进行判断,另外用一个普通数组进行标记已经出现的数字,令其在数组位置的数字为1(初始化全部为0),然后对数据从大到小进行判断即可AC代码#include<iostream>#include<vector>#include<algorithm>using namespace std;vector<int>v;//存储数据 int k,tp, arr[10000];//k表述数据量,tp是te.原创 2021-04-24 17:15:42 · 172 阅读 · 0 评论 -
PTA1004乙级 成绩排名(C++,sort排序,关键字排序)
思路分析首先通过题目我们可以看出此题是一个明显的关键字排序,即通过某个特殊的标准来对整体排序,这里推荐使用结构体,c和c++里面都可以用,然后就是sort的排序,自己手写cmp关键字排序,话不多说,上代码。AC代码#include<iostream>#include<algorithm>#include<string>using namespace std;struct part{ string name; string num; int s原创 2021-04-23 00:14:44 · 240 阅读 · 0 评论 -
PAT乙级1003 我要通过!C++(string的妙用,找规律,创建函数)
题目笔记参考思路: 我要通过!规律是大家早就推出来的 左边A的 数量乘上中间A的数量等于右边A的数量C++里string容器内部的find()函数:其次是关于空格问题:首先,开头的空格字符串会被忽略,如果开头为空格,则如果中间没空格 且满足第二种情况,则末尾的空格会被cin碰到自动停止,所以输入“ PAT ”是正确的,其次中间有空格的情况,是直接输出错误的,因为没有满足的正确条件自己创建一个函数进行判断,可以减少对变量的命名,减少错误代码一些复杂度的优化和错误的修改记录AC代码#原创 2021-04-22 23:20:03 · 127 阅读 · 0 评论 -
PTA乙级1002 写出这个数(字符和数字转换,各位数字求法,对输出结果分析)
题目读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1e100。标准输入1234567890987654321123456789标准输出yi san wu思路分析首先他说n的位数不超过100位,此处表明了我们不能够直接读入n,因为位数太大,但其次,它给我们明确了最终各位数字和的范围不超过1000,因为即使每位都是9,也就是100个9相加,就900而已,所以我们可以特判结果原创 2021-04-22 20:13:31 · 163 阅读 · 0 评论 -
A-B(字符串问题)
题目描述本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式输入在2行中先后给出字符串A和B。两字符串的长度都不超过104 ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束输出格式在一行中打印出A−B的结果字符串样例输入I love GPLT! It’s a fun game!aeiou样例输出I lv GPLT! It’s fn gm!思路此处不原创 2021-04-05 10:42:47 · 5324 阅读 · 0 评论 -
倒数第N个字符串
题目描述给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, …, aaz, aba, abb, …, abz, …, zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。输入格式输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤105 )。输出格式在一行中输出对应序列倒数转载 2021-04-05 10:23:53 · 133 阅读 · 0 评论 -
连续因子
题目描述一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式输入在一行中给出一个正整数 N(1<N<231)。输出格式首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。样例输入630样例输出3567原创 2021-04-05 09:54:35 · 465 阅读 · 0 评论