#include <iostream> using namespace std; int main() { int wi[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char z[11] = {‘1‘, ‘0‘, ‘X‘, ‘9‘, ‘8‘, ‘7‘, ‘6‘, ‘5‘, ‘4‘, ‘3‘, ‘2‘}; string s; while (cin >> s) { int i, l, sum = 0; l = s.length() - 1; for (i = 0; i < 17; i++) sum += wi[i] * (s[i] - ‘0‘); if (z[sum % 11] == s[l]) cout << "正确" << endl; else cout << "应为:" << s.substr(0, 17) + z[sum % 11] << endl; } return 0; }
PS:这题代码不知道为啥这么少,不知道自己有没有误解题目意思,视情况而定啊,考虑周全。要!
#include <iostream> #include <vector> using namespace std; int main() { vector<int> a; int n; while (cin >> n) { a.push_back(n); if(getchar() == ‘\n‘) break; } for(int i = 0; i < a.size(); i++) { cout << a[i] << " "; } cout << endl << "请输入所要查找的元素: "; int cx; while(cin >> cx) { int low = 0; int high = a.size() - 1; int mid, cnt = 0; while(low <= high) { cnt++; mid = (low + high) / 2; if(a[mid] == cx) { cout << "第" << mid + 1 << "个元素为" << cx << ",比较次数为" << cnt << endl; break; } else if(a[mid] > cx) high = mid - 1; else low = mid + 1; } if(low > high) cout << "查找失败,比较次数为" << cnt << endl; cout << "请输入所要查找的元素: "; } return 0; }
#include <iostream> #include <algorithm> #include <vector> using namespace std; struct student { string name; int g1, g2, g3; double avg; }; bool cmp(student s1, student s2) { return s1.avg > s2.avg; } int main() { int n; cin >> n; student stu[n]; vector<student> v; for(int i = 0; i < n; i++) { cin >> stu[i].name >> stu[i].g1 >> stu[i].g2 >> stu[i].g3; stu[i].avg = (stu[i].g1 + stu[i].g2 + stu[i].g3) / (double)3; if(stu[i].g1 < 60 || stu[i].g2 < 60 || stu[i].g3 < 60) v.push_back(stu[i]); } sort(stu, stu + n, cmp); sort(v.begin(), v.end(), cmp); for(int i = 0; i < v.size(); i++) { cout << "*name:" << v[i].name << " score:" << v[i].g1 << " " << v[i].g2 << " " << v[i].g3 << endl; } for(int i = 0; i < n; i++) { cout << "[" << i + 1 << "] name:" << stu[i].name << " " << stu[i].g1 << " " << stu[i].g2 << " " << stu[i].g3 << endl; } return 0; }
以下是软件学院复试题
1、输入 n(1<=n<=9),打印对应行数的三角形。要注意非法输入。
PS:这个题应该没问题,注意一下非法输入,奇数偶数就行。
#include <iostream> using namespace std; int main() { int n; while (cin >> n) { int m = n * n; while (n != 0) { if (n % 10 != m % 10) { cout << "No" << endl; break; } n /= 10; m /= 10; } if (n == 0) cout << "Yes" << endl; } return 0; }
#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; int main() { string s, str; while (getline(cin, s)) { str = ""; vector<string> v; for (int i = 0; i < s.length(); i++) { if (isalpha(s[i])) str += s[i]; if (s[i] == ‘ ‘ || i + 1 == s.length()) { v.push_back(str); str = ""; } } sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i++) cout << v[i] << " "; } return 0; }
#include <iostream> #include <set> using namespace std; set<string> ss; void perm(string s, int p, int q) { string str; if (p == q) { for (int i = 0; i < q + 1; i++) str += s[i]; ss.insert(str); } else { for (int i = p; i <= q; i++) { swap(s[p], s[i]); perm(s, p + 1, q); swap(s[p], s[i]); } } } int main() { string s; while (cin >> s) { int l = s.length() - 1; perm(s, 0, l); int cnt = 0; for (auto i = ss.begin(); i != ss.end(); i++) { cout << *i; cnt++; if (cnt < ss.size()) cout << ","; } ss.clear(); } return 0; }
原文:https://www.cnblogs.com/ache/p/12599473.html