春节刷题day1:[PAT乙级:1001 ~ 1010 ]

2023-11-20 13:38

本文主要是介绍春节刷题day1:[PAT乙级:1001 ~ 1010 ],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

春节刷题day1:PAT

1001 害死人不偿命的(3n+1)猜想

1002 写出这个数

1003 我要通过!

1004 成绩排名

1005 继续(3n+1)猜想

1006 换个格式输出整数

1007 素数对猜想

1008 数组元素循环右移问题

1009 说反话

1010 一元多项式求导


1、1001 害死人不偿命的(3n+1)猜想

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>using namespace std;int n, m, T;int main(){int i, j, k;while(cin >> n){int ans = 0;while(n != 1){if(n & 1) n = (3 * n + 1) / 2;else n /= 2;ans++;}cout << ans << endl;}return 0;
}

2、1002 写出这个数

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>using namespace std;int n, m, T, tot;
string s, ans[15];
map<int, string> p;void init(){p[0] = "ling"; p[1] = "yi"; p[2] = "er"; p[3] = "san";p[4] = "si"; p[5] = "wu"; p[6] = "liu"; p[7] = "qi";p[8] = "ba"; p[9] = "jiu";
}int main(){int i, j, k;init();while(cin >> s){int len = s.size(), sum = 0;for(i = 0; i < len; i++) sum += s[i] - '0';while(sum){ans[tot++] = p[sum % 10];sum /= 10;}reverse(ans, ans + tot);for(i = 0; i < tot; i++){cout << ans[i];printf("%c", i == tot - 1 ? '\n' : ' ');}}return 0;
}

3、1003 我要通过!

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>using namespace std;int n, m, T, len;
string s;bool checka(){for(int i = 0; i < len; i++){if(s[i] != 'P' && s[i] != 'A' && s[i] != 'T') return false;}return true;
}bool checkb(){int l, r, num = 0;for(int i = 0; i < len; i++)if(s[i] == 'P'){ l = i; break; }for(int i = len - 1; i >= 0; i--)if(s[i] == 'T'){ r = i; break; }for(int i = 0; i < len; i++) if(s[i] == 'A') num++;if((num != len - 2) || (len - 2 == 0)) return false;if((r - l - 1) * l != len - r - 1) return false;return true;
}int main(){int i, j, k;cin >> T;while( T-- ){cin >> s; len = s.size();if(checka() && checkb()) puts("YES");else puts("NO");}return 0;
}

4、1004 成绩排名

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>using namespace std;int n, m, T, len;struct node{string name;string num;int score;bool operator < (const node &A)const{return score < A.score;}
}a[10005];int main(){int i, j, k;while( cin >> n){for(i = 0; i < n; i++){cin >> a[i].name >> a[i].num >> a[i].score;}sort(a, a + n);cout << a[n - 1].name << " " << a[n - 1].num << endl;cout << a[0].name << " " << a[0].num << endl;}return 0;
}

5、1005 继续(3n+1)猜想

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
map<int, int> p;
map<int, int>::iterator it;
int ans[105];int main(){int i, j, k;while( cin >> n){for(i = 0; i < n; i++){cin >> m;p[m] = 1;}for(it = p.begin(); it != p.end(); it++){k = it -> fi;while(k != 1){if(p[k]) p[k]++;if(k & 1) k = (3 * k + 1) / 2;else k /= 2;}}for(it = p.begin(); it != p.end(); it++){if(it -> se == 2) ans[tot++] = it -> fi;}sort(ans, ans + tot, greater<int>());for(i = 0; i < tot; i++)printf("%d%c", ans[i] , i == tot - 1 ? '\n' : ' ');}return 0;
}

6、1006 换个格式输出整数

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
string s;int main(){int i, j, k;while( cin >> n){for(i = 0; i < n / 100; i++) printf("B");for(i = 0; i < n % 100 / 10; i++) printf("S");for(i = 1; i <= n % 10; i++) printf("%d", i);puts("");}return 0;
}

7、1007 素数对猜想

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
int prime[100005];bool check(int x){for(int i = 2; i <= sqrt(x); i++)if(x % i == 0) return false;return true;
}int main(){int i, j, k;for(i = 2; i <= 100005; i++){ if(check(i) ) prime[tot++] = i;}while(cin >> n){int ans = 0;for(i = 1; prime[i] <= n; i++){if(prime[i] - prime[i - 1] == 2) ans++;}cout << ans << endl;}return 0;
}

8、1008 数组元素循环右移问题

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
vector<int> v;int main(){int i, j, k;while(cin >> n >> m){for(i = 0; i < n; i++){cin >> k; v.push_back(k);}m %= n;if(m){printf("%d", v[n - m]);for(i = n - m + 1; i < n; i++) printf(" %d", v[i]);for(i = 0; i < n - m; i++) printf(" %d", v[i]);}else{printf("%d", v[0]);for(i = 1; i < n; i++) printf(" %d", v[i]);}puts("");}return 0;
}
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
int a[105];
vector<int> v;int main(){int i, j, k;while(cin >> n >> m){for(i = 0; i < n; i++){cin >> k; v.push_back(k);}m %= n;reverse(v.begin() + n - m, v.end());reverse(v.begin(), v.begin() + n - m);reverse(v.begin(), v.end());for(i = 0; i < n; i++)printf("%d%c", v[i], i == n - 1 ? '\n' : ' ');}return 0;
}

9、1009 说反话

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<sstream>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
string s, ans[105];int main(){int i, j, k;while( getline(cin, s)){string x;stringstream ss(s);while(ss >> x) ans[tot++] = x;for(i = tot - 1; i >= 0; i--){cout << ans[i];printf("%c", i == 0 ? '\n' : ' ');}}return 0;
}

10、1010 一元多项式求导

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<sstream>
#include<string>
#include<cstring>
#define fi first
#define se secondusing namespace std;int n, m, T, tot;
int a[10005], b[10005];int main(){int i, j, k;bool ok = false;for(i = 0; ; i++){cin >> a[i] >> b[i];if(b[i] == 0) break;a[i] *= b[i]; b[i] -= 1; ok = true;}for(j = 0; j < i; j++)printf("%d %d%c", a[j], b[j], j == i - 1 ? '\n' : ' ');if(!ok) printf("0 0\n");return 0;
}

2021/2/6完结(好久没写题了,写起来还是有点手生,今天刚刚放假,就先写这10道题吧,等之后有空争取每天多刷几道题吧)。

这篇关于春节刷题day1:[PAT乙级:1001 ~ 1010 ]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394988

相关文章

【每日刷题】Day113

【每日刷题】Day113 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 91. 解码方法 - 力扣(LeetCode) 2. LCR 098. 不同路径 - 力扣(LeetCode) 3. 63. 不同路径 II - 力扣(LeetCode) 1. 91. 解码方法 - 力扣(LeetCode) //思路:动态规划。 cl

hot100刷题第1-9题,三个专题哈希,双指针,滑动窗口

求满足条件的子数组,一般是前缀和、滑动窗口,经常结合哈希表; 区间操作元素,一般是前缀和、差分数组 数组有序,更大概率会用到二分搜索 目前已经掌握一些基本套路,重零刷起leetcode hot 100, 套路题按套路来,非套路题适当参考gpt解法。 一、梦开始的地方, 两数之和 class Solution:#注意要返回的是数组下标def twoSum(self, nums: Lis

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II 1.题目 1.1递增子序列 题目链接:491. 非递减子序列 - 力扣(LeetCode) 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0491.%E9%80%92%E

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II 1.题目 1.1复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0093.%E5%A4%8

【笔记】数据结构刷题09

快速排序 215. 数组中的第K个最大元素 class Solution {public:int findKthLargest(vector<int>& nums, int k) {return divide(nums,0,nums.size()-1,nums.size()-k);}int divide(vector<int>& nums,int left,int right,int k)

C语言:刷题日志(1)

一.阶乘计算升级版 本题要求实现一个打印非负整数阶乘的函数。 其中n是用户传入的参数,其值不超过1000。如果n是非负整数,则该函数必须在一行中打印出n!的值,否则打印“Invalid input”。 首先,知道阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。那么我们先来个简单的阶乘计算吧。 #include<stdio.h>int Fact(int n){if (n <=

百度之星 2015 复赛 1001 (数长方形)

数长方形    Accepts: 595    Submissions: 1225  Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊喜欢玩木棒。一天他在玩木棒的时候,发现一些木棒会形成长方形

【每日刷题】Day112

【每日刷题】Day112 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1137. 第 N 个泰波那契数 - 力扣(LeetCode) 2. 面试题 08.01. 三步问题 - 力扣(LeetCode) 3. LCR 088. 使用最小花费爬楼梯 - 力扣(LeetCode) 1. 1137. 第 N 个泰波那契数 - 力扣(LeetCo

【数据结构】【java】leetcode刷题记录--链表

简介 链表是一种常见的基础数据结构,它由一系列节点组成,每个节点包含数据域和指向下一个节点的指针。在Java中,链表通常用于实现动态数据结构,因为它可以根据需要动态地增加或减少节点。 链表简介: 节点结构:链表中的每个元素称为节点(Node),每个节点包含两部分:数据域(存储数据)和指针域(存储下一个节点的地址)动态性:链表的长度不是固定的,可以根据需要动态地增减节点。内存分配:链表中的节点

HDU 1010 Tempter of the Bone (搜索)

OJ题目 : click here ~~ 大概题意 : 迷宫搜索。从起点到终点 ,不能回头 , 问能不能在恰好在T 时刻,准时到达终点。 本题充分体现了剪枝的重要性: 奇偶性剪枝: 可以把maze看成这样:  0 1 0 1 0 1  1 0 1 0 1 0  0 1 0 1 0 1  1 0 1 0 1 0  0 1 0 1 0 1  从为 0 的格子走一步,必然走向为 1 的格子