
pat刷题记录(乙)
alike_meng
好菜啊,怎么办
展开
-
1001 害死人不偿命的(3n+1)猜想
1001 害死人不偿命的(3n+1)猜想#include<iostream>using namespace std;int caculate(int n){ int count = 0; while (n != 1) { if (n % 2 == 0) //偶数 n = n / 2; else n = (3 * n + 1) / 2;...原创 2019-02-01 11:28:06 · 180 阅读 · 0 评论 -
1002 写出这个数
想好好写一下这个题,因为一开始写了一百多行都没有写正确…如果不想看那么多直接拉到最后看代码,但是也许我的解题过程会对你有帮助。之前的思路:用除10取余循环计算得到一个sum也就是各个数字的和,然后把sum倒转回来在除10取余得到一个一个数字(因为取余首先得到的输出是个位数,但是要先输出最高位数,我就先把它倒转过来再用这种方法),然后用一个switch case去把各个拼音写出来,在写一个小...原创 2019-02-01 15:14:20 · 9024 阅读 · 8 评论 -
1003 我要通过!
只看代码直接拖到最下面其实刚一看这个题没看懂,很轻易就能得出的结论是:必须要有PAT三个字符,P,T有且只有一个,P在T前面。第2,3点就不知道具体想表达啥了,反正我是没看出来。看了一下网上的博客,大家普遍认同的一种结论是:以P和T为边界可以分为三部分: P***********T,也就是话星号的三部分。我们先不管空字符串的情况,如果星号都是由字母A组成,以上归纳出来的规律是这样的,如...原创 2019-02-02 16:38:07 · 7298 阅读 · 4 评论 -
1004 成绩排名
这道题其实很简单,对于读入数据的条数,题目只说了n>0,试了一下做一个一万的数组就满分了,不存在之前写1002的时候有很大的数据。解法上要么直接用结构体和数组来做,要么直接定义变量也能写。其实这两种解法蕴含着两种不同的思维方式。对于用变量来做,只需要提前定义一个最大值和最小值,在输入数据不断与最值进行比较,更新最值,最后就能得结果,他不需要储存数据,用完就丢弃。而如果用结构体的话,可以先定...原创 2019-02-02 18:14:58 · 2703 阅读 · 2 评论 -
1005 继续(3n+1)猜想
自己写了个解法不能得满分,贴出来看下,我也知道哪里有问题。但是代码真心又臭又长。思路是这样的:一个number数组输入数字,然后将数组中的每个数字按照题目要求分解,将所有的分解出来的数字存在process数组中。该数组的下标就是存入的数字,标记为1.然后将这些数字提取出来,存在fit数组里面,fit数组便得到了所有数字分解过程的数字,然后对比输入的数字。输入中有的,分解数组中没有的即是关键数...原创 2019-02-03 16:11:53 · 1250 阅读 · 0 评论 -
1006 换个格式输出整数
这是个简单题就不分析了#include<iostream>using namespace std;void caculate(int number){ int count_hundred = 0,count_ten=0,count_bit=0; int count[3] = { 0 }; //计算后count[0]、[1]、[2]是个位十位百位 int i = ...原创 2019-02-09 12:54:26 · 126 阅读 · 0 评论 -
1007 素数对猜想
这道题到目前我还没有发现我错在哪里。得分是18/20。这是我的代码,思路上对比了满分答案,是没有问题的。第二块代码来自https://blog.youkuaiyun.com/zhanshen112/article/details/84313178 运行了是满分的可以放心参考。素数是说除了1和本身之外没有其他的能整除他的数。以前写素数的时候,大多数同学都是按照定义(2到m-1)来解,也知道有一种开平方...原创 2019-02-09 15:44:33 · 191 阅读 · 0 评论 -
1008 数组元素循环右移问题
这道题开始的时候没什么思路(最后也没做出来,下面会分享一个别的博主的解法)。我想的肯定是交换,先把最后面的和最前面的交换,这时候最前面的就已经排好了。再把中间的和新的最后面的交换,就能得到正确的顺序了。我的思维是真低级的模块化,一块一块实现,每个功能写个for,不知道怎么用更少量的for结合函数去实现这个问题。解法1跟这个思路相似。但是我更推崇解法2,以下会详细解释一些解法2.1.解法1来自这...原创 2019-02-10 12:15:54 · 159 阅读 · 0 评论 -
1009 说反话
这种反着输出的我就有点想用栈,但是呢又是一个一个单词反着输入而不是一个一个字母。一个字符串用空格做分隔符能有很明显的界限。开始想的是用一个字符串输入,然后遍历字符串,用一个数组存空格的位置,然后根据空格位置来控制每一个单词的输出。但是这种解法控制一个空格到另一个空格有点麻烦。要是用容器的话这个题就简单一些,也是实现数组的基本功能但用到vector的size的话对于输出来说就简单多了。这是某个博...原创 2019-02-10 14:07:39 · 317 阅读 · 0 评论