剪刀、石头、布

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void RSP(string p1,string p2){
  4. if(p1 == p2){
  5. cout << "Tie" << endl;
  6. return;
  7. }
  8. if( p1 == "Rock" && p2 == "Scissors"){
  9. cout << "Player1" << endl;
  10. return;
  11. }
  12. if( p1 == "Rock" && p2 == "Paper"){
  13. cout << "Player2" << endl;
  14. return;
  15. }
  16. if( p1 == "Scissors" && p2 == "Rock"){
  17. cout << "Player2" << endl;
  18. return;
  19. }
  20. if( p1 == "Scissors" && p2 == "Paper"){
  21. cout << "Player1" << endl;
  22. return;
  23. }
  24. if( p1 == "Paper" && p2 == "Rock"){
  25. cout << "Player1" << endl;
  26. return;
  27. }
  28. if( p1 == "Paper" && p2 == "Scissors"){
  29. cout << "Player2" << endl;
  30. return;
  31. }
  32. }
  33. int main(){
  34. // "Rock", "Scissors", "Paper"
  35. // RSP("Rock","Scissors");
  36. int n;
  37. cin >> n;
  38. string p1,p2;
  39. while(n--){
  40. cin >> p1>> p2;
  41. RSP(p1,p2);
  42. }
  43. return 0;
  44. }

统计单词长度:

  1. #include <iostream>
  2. using namespace std;
  3. // SymoChan <hnai@qq.com>
  4. int main() {
  5. int tot = 0;
  6. string s ;
  7. while(cin>>s){
  8. tot ++;
  9. if( tot != 1 ) cout << "," ;
  10. cout << s.size();
  11. }
  12. return 0;
  13. }

单词倒序

  1. #include <vector>
  2. #include <iostream>
  3. using namespace std;
  4. // SymoChan <hnai@qq.com>
  5. vector<string> vec;
  6. int main() {
  7. string s ;
  8. while(cin>>s){
  9. vec.push_back(s);
  10. }
  11. int len = vec.size();
  12. for(int i = len -1; i >= 0 ; i--){
  13. cout << vec[i] << " ";
  14. }
  15. return 0;
  16. }

整理药名

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n;
  5. string s;
  6. cin >> n;
  7. while(n--){
  8. cin >> s;
  9. int len = s.size();
  10. if(s[0] >= 'a' && s[0] <= 'z'){
  11. s[0] = s[0] - 'a' + 'A';
  12. }
  13. for(int i= 1 ; i < len; i++){
  14. if(s[i] >= 'A' && s[i] <= 'Z'){
  15. s[i] = s[i] - 'A' + 'a';
  16. }
  17. }
  18. cout << s << endl;
  19. }
  20. return 0;
  21. }

平衡数

  1. bool phs(int n){
  2. // 判断是否为平衡数
  3. int arr[10] = {0} ;
  4. while(n>0){
  5. arr[ n % 10 ] ++;
  6. n /= 10;
  7. }
  8. for(int i = 0 ; i <= 9 ; i++){
  9. if(arr[i] > 0 ){ // 只循环包含的数
  10. if( arr[i] != i){ // 判断这个数的出现次数
  11. return false;
  12. }
  13. }
  14. }
  15. return true;
  16. }

统计字符数

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. string s ;
  5. cin >> s;
  6. sort(s.begin(),s.end());
  7. // 字符串 结尾 \0
  8. size_t len = s.size(),cnt = 1;
  9. int maxN = -1;
  10. char ch = ' ';
  11. for(int i = 0 ; i < len; i++){
  12. if(s[i] == s[i+1]){
  13. cnt ++;
  14. }else{
  15. // cout << s[i] << " " << cnt << "\n";
  16. if(maxN < cnt){
  17. maxN = cnt;
  18. ch = s[i];
  19. }
  20. cnt = 1;
  21. }
  22. }
  23. cout << ch << " " << maxN;
  24. return 0;
  25. }

出现次数超过一半的数

  1. #include <bits/stdc++.h>
  2. #include <vector>
  3. using namespace std;
  4. vector<int > vec(1,-100);
  5. int main(){
  6. int n ,tmp;
  7. cin >> n;
  8. while(n--){
  9. cin >> tmp;
  10. vec.push_back(tmp);
  11. }
  12. sort(vec.begin(),vec.end()); // 排序
  13. int len = vec.size(),cnt = 1;
  14. // cout << len << endl;
  15. int maxN = -10000;
  16. for(int i = 1; i < len; i++){
  17. if(vec[i] == vec[i-1]){
  18. cnt ++;
  19. }else{
  20. cnt = 1;
  21. }
  22. if(maxN < cnt) maxN = cnt;
  23. if( maxN >= ( len / 2 )){
  24. cout << maxN;
  25. return 0;
  26. }
  27. }
  28. cout << "no";
  29. return 0;
  30. }

白细胞

  1. #include <bits/stdc++.h>
  2. #include <vector>
  3. #include <cmath>
  4. using namespace std;
  5. // vector<double> vec;
  6. double v[305];
  7. int main(){
  8. int n;
  9. cin >> n;
  10. for(int i = 0 ; i < n; i++){
  11. cin >> v[i];
  12. }
  13. sort(v,v+n);
  14. double sum = 0;
  15. for(int i = 1 ; i < n-1; i++){ // 循环忽略头尾
  16. sum += v[i];
  17. }
  18. double ave = sum / (n-2) ; //
  19. double maxX = -1;
  20. // cout << sum << " " << ave << endl;
  21. for(int i = 1 ; i < n-1; i++){ // 循环忽略头尾
  22. double absV = fabs(v[i] - ave);
  23. if(maxX < absV){
  24. maxX = absV;
  25. }
  26. }
  27. printf("%.2f %.2f", ave,maxX);
  28. // cout << ave << " " << maxX ;
  29. // double tmp;
  30. // while(n--){
  31. // cin >> tmp;
  32. // vec.push_back(tmp);
  33. // }
  34. // sort(vec.begin(),vec.end());
  35. // vec.pop_back(); // 删除最后一个
  36. // vec.erase(vec.begin()); // 删除最前面一个
  37. // for(auto x : vec) cout << x << " ";
  38. return 0;
  39. }