pta乙级1005继续(3n+1)猜想(25分)(代码片段)

scp-514 scp-514     2022-11-30     739

关键词:

技术图片

 

 

 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进行验证的时候,我们... 查看详情