关键词:
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 bool cmp(int a, int b) 6 return a > b; 7 8 int main() 9 int K, flag = 0; 10 cin >> K; 11 int a[10000] = 0 ; 12 vector<int> v; 13 for (int i = 0; i < K; i++) 14 int tmp; 15 cin >> tmp; 16 v.push_back(tmp); 17 while (tmp != 1) 18 if (tmp % 2 == 1) 19 tmp = 3 * tmp + 1; 20 tmp /= 2; 21 if (a[tmp] == 0) 22 a[tmp] = 1; 23 24 25 sort(v.begin(), v.end(), cmp); //重新排序 26 for (int i = 0; i < v.size(); i++) 27 if (a[v[i]] == 0) 28 if (flag == 1) cout << " "; 29 cout << v[i]; 30 flag = 1; 31 32 33 return 0; 34
来源:https://blog.csdn.net/zhanshen112/article/details/84310167
本题不太会(本人太菜了),感谢这位博主提供好方法,得以学习
对C++的库了解甚少,专门查了查官方文档:http://www.cplusplus.com/reference/algorithm/
里面sort函数的解释:
pat乙级1005.继续(3n+1)猜想(25)
1005.继续(3n+1)猜想(25)时间限制400ms内存限制65536kB代码长度限制8000B 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇... 查看详情
1005继续(3n+1)猜想(25分)(代码片段)
1005继续(3n+1)猜想卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证... 查看详情
1005继续(3n+1)猜想(25分)(代码片段)
1005继续(3n+1)猜想卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证... 查看详情
1005继续(3n+1)猜想(25分)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算3、5... 查看详情
patb1005继续(3n+1)猜想(25分)(代码片段)
#include<stdio.h>#include<algorithm>usingnamespacestd;intTable[1000]=0;boolhashtable[105];boolcmp(inta,intb)returna>b;voidput()inttemp;scanf("%d",&temp);Table[temp]++;hashtable 查看详情
patbasic1005继续(3n+1)猜想(25分)(代码片段)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算3、5... 查看详情
1005继续(3n+1)猜想(25分)(代码片段)
目录一.题目二.思路三.代码四.结果一.题目卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。... 查看详情
pat-乙级-1005继续(3n+1)猜想(代码片段)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算3、5... 查看详情
pta乙级1001害死人不偿命的(3n+1)猜想(15分)(代码片段)
1#include<stdio.h>23intmain()4intn=0;5intnum=0;6//printf("请输入一个不超过1000的正整数:");7scanf("%d",&num);8while(num!=1)9if(num%2==0)10num=num/2;11n++;12else13num=(3*num+1)/2;14//prin 查看详情
pat乙级题库全套总结
我将难度分为三个等级:简单中等难简单的做一次足以,做再多遍也无任何的意义。中等的可以多刷几遍难的多刷几遍目录1001害死人不偿命的(3n+1)猜想【简单】1002写出这个数(20分)【简单】1003我要通过!(20分)【难】1004... 查看详情
pat1005继续(3n+1)猜想(25)
importjava.util.Arrays;importjava.util.Scanner;publicclassMain7{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intn=in.nextInt();inta=0;intb=0;int[]data=newint[n];boolean[]check=ne 查看详情
1005.继续(3n+1)猜想(25)
拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、... 查看详情
1005.继续(3n+1)猜想(25)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2... 查看详情
b1005继续(3n+1)猜想(25分)(代码片段)
B1005继续(3n+1)猜想(25分)卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,... 查看详情
pat——1005.继续(3n+1)猜想(25)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2... 查看详情
1005.继续(3n+1)猜想(25)(代码片段)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2... 查看详情
pat1005继续(3n+1)猜想(25)(代码片段)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2... 查看详情
pat1005继续(3n+1)猜想
1005.继续(3n+1)猜想(25)卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们... 查看详情