PAT (Basic) 1006~1010

来源:互联网 发布:淘宝什么样主图违规 编辑:程序博客网 时间:2024/04/29 20:43

1006. 换个格式输出整数 (15)

#include <iostream>#include <string>using namespace std;int main(){int n;cin >> n;int b = n / 100;int s = n / 10 % 10;int g = n % 10;for (int i = 0; i < b; i++)cout << "B";for (int i = 0; i < s; i++)cout << "S";for (int i = 1; i <= g; i++)cout << i;cout << endl;return 0;}


1007. 素数对猜想 (20)

#include <iostream>#include <vector>#include <algorithm>#include <string>#include <cstring>using namespace std;bool prime[100005]; // prime is true, non-prime is falsevoid init(){memset(prime, true, sizeof(prime));prime[0] = false;prime[1] = false;for (int i = 2; i <= 100005 >> 1; i++){for (int j = i << 1; j < 100005; j += i)prime[j] = false;}}int main(){int N;cin >> N;if (N > 0 &&N < 5)cout << 0 << endl;else{init();int cnt = 0;for (int i = 2; i + 2 <= N; i++){if (prime[i] && prime[i + 2])cnt++;}cout << cnt << endl;}return 0;}


1008. 数组元素循环右移问题 (20)

#include <iostream>#include <vector>using namespace std;void vecswap(vector<int> &v, int begin, int end){while (begin < end){swap(v[begin], v[end]);begin++;end--;}}int main(){int n, m;cin >> n >> m;vector<int> v(n);for (int i = 0; i < n; i++)cin >> v[i];m = m % n;int k = n - m;vecswap(v, 0, k - 1);vecswap(v, k, n - 1);vecswap(v, 0, n - 1);cout << v[0];for (int i = 1; i < n; i++)cout << " " << v[i];cout << endl;return 0;}


1009. 说反话 (20)

#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;int main(){//freopen("in.txt", "r", stdin);vector<string> vs;string str;while (cin >> str){vs.push_back(str);}vector<string> ::reverse_iterator rit = vs.rbegin();cout << *rit;++rit;for (; rit != vs.rend(); ++rit)cout << " " << *rit;cout << endl;return 0;}


1010. 一元多项式求导 (25)

自己写的稀烂的代码,写得太啰嗦了。sigh...

#include <iostream>#include <vector>using namespace std;int main(){int a, b;int first = true;while (cin >> a >> b){if (first && a == 0 || first && b == 0){cout << "0 0";break;}if (b && first){cout << a * b << " " << b - 1;first = false;continue;}if (b){cout << " " << a * b << " " << b - 1;}}cout << endl;return 0;}

别人的代码:

#include <iostream>using namespace std;int main(){int a, b;bool flag = false;while (cin >> a >> b){if (a*b){if (flag)cout << " ";elseflag = true;cout << a * b << " " << b - 1;}}if (!flag)cout << "0 0";return 0;}


0 0
原创粉丝点击