当前位置:   article > 正文

【每日一练】3_每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 n,随后

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 n,随后

题目描述

给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
 

输入描述:

输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。
 

输出描述:

对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。
 

输入例子:

  1. 4
  2. 1 2 3
  3. 2 3 4
  4. 2147483647 0 2147483646
  5. 0 -2147483648 -2147483647
 

输出例子:

  1. Case #1: false
  2. Case #2: true
  3. Case #3: true
  4. Case #4: false
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <sstream>
  5. using namespace std;
  6. int Str2Num(string &str,vector<long long> &inputData){
  7. long long sum = 0;
  8. int flag = 0;
  9. size_t i = 0;
  10. int operatorflag = 1;
  11. while(i < str.size()){
  12. if(str[i] <= '9' && str[i] >= '0'){
  13. if(i>0){
  14. if(str[i-1] == '-')
  15. operatorflag = -1;
  16. }
  17. sum = sum*10 + str[i] - '0';
  18. flag = 1;
  19. // cout << sum << endl;
  20. }
  21. else{
  22. if(flag){
  23. inputData.push_back(operatorflag*sum);
  24. flag = 0;
  25. operatorflag = 1;
  26. }
  27. sum = 0;
  28. }
  29. i++;
  30. if(i == str.size() && flag)
  31. inputData.push_back(operatorflag*sum);
  32. }
  33. // for(auto ij : inputData)
  34. // cout << ij << endl;
  35. return 0;
  36. }
  37. int main()
  38. {
  39. int numTol;
  40. string InputDataStr;
  41. string str1,str2,str1Temp,str2Temp;
  42. vector<long long> inputData;
  43. vector<string> ans;
  44. cin >> numTol;
  45. int ij = 0;
  46. cin.ignore();
  47. while(ij < numTol){
  48. stringstream sstr;
  49. getline(cin,InputDataStr);
  50. // cout << InputDataStr << endl;
  51. if(Str2Num(InputDataStr,inputData))
  52. return 0;
  53. if(inputData.size() == 3){
  54. if(inputData[0] + inputData[1] > inputData[2]){
  55. sstr << (ij+1);
  56. str1Temp = sstr.str();
  57. str1 = "Case #"+str1Temp+": true";
  58. ans.push_back(str1);
  59. }
  60. else{
  61. sstr << (ij+1);
  62. str2Temp = sstr.str();
  63. str2 = "Case #"+str2Temp+": false";
  64. ans.push_back(str2);
  65. }
  66. }
  67. ij++;
  68. InputDataStr.clear();
  69. inputData.clear();
  70. }
  71. for(auto i : ans)
  72. cout << i << endl;
  73. return 0;
  74. }

 

题目描述

  1. 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:
  2. A1 = 能被5整除的数字中所有偶数的和;
  3. A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
  4. A3 = 被5除后余2的数字的个数;
  5. A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
  6. A5 = 被5除后余4的数字中最大数字。
 

输入描述:

每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。
 

输出描述:

  1. 对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
  2. 若其中某一类数字不存在,则在相应位置输出“N”。
 

输入例子:

13 1 2 3 4 5 6 7 8 9 10 20 16 18
  1. #include <iomanip>
  2. #include <string>
  3. #include <vector>
  4. #include <iostream>
  5. #include <algorithm>
  6. #include <sstream>
  7. using namespace std;
  8. /*
  9. * 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:
  10. * A1 = 能被5整除的数字中所有偶数的和;
  11. * A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
  12. * A3 = 被5除后余2的数字的个数;
  13. * A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
  14. * A5 = 被5除后余4的数字中最大数字。
  15. * 输入描述:
  16. * 每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,
  17. * 随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。
  18. * 输出描述:
  19. * 对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,
  20. * 但行末不得有多余空格。
  21. * 若其中某一类数字不存在,则在相应位置输出“N”。
  22. * 输入例子:
  23. * 13 1 2 3 4 5 6 7 8 9 10 20 16 18
  24. * 输出例子:
  25. * 30 11 2 9.7 9
  26. */
  27. int str2Num(string &str,vector<unsigned int> &inputData){
  28. int sum = 0;
  29. int flag = 0;
  30. size_t i = 0;
  31. while(i < str.size()){
  32. if(str[i] <= '9' && str[i] >= '0'){
  33. sum = sum*10 + str[i] - '0';
  34. flag = 1;
  35. // cout << str[i] << endl;
  36. }
  37. else{
  38. if(flag){
  39. inputData.push_back(sum);
  40. sum = 0;
  41. flag = 0;
  42. // cout << " " << endl;
  43. }
  44. }
  45. i++;
  46. // cout << "i = " << i << endl;
  47. if(i == str.size())
  48. inputData.push_back(sum);
  49. }
  50. // cout << "over" <<endl;
  51. return 0;
  52. }
  53. int main()
  54. {
  55. // size_t numTol = 0;
  56. string inputDataStr;
  57. vector<unsigned int> inputData,inputDataTemp,A1,A2,A3,A4,A5;
  58. int sumA1 = 0;
  59. int sumA2 = 0;
  60. // int sumA3 = 0;
  61. float sumA4 = 0;
  62. unsigned int sumA5 = 0;
  63. // cin >> numTol;
  64. // cin.ignore();
  65. getline(cin,inputDataStr);
  66. // cout << inputDataStr << endl;
  67. str2Num(inputDataStr,inputDataTemp);
  68. // cout << inputDataTemp.size() << " "<< inputDataTemp[0] << endl;
  69. if((inputDataTemp.size() != 0) && (inputDataTemp.size()-1 == inputDataTemp[0])){
  70. // cout << "yes " << endl;
  71. for(size_t i = 1;i < inputDataTemp.size();i++)
  72. inputData.push_back(inputDataTemp[i]);//vector不能使用下标添加元素
  73. for(auto i : inputData){
  74. //A1 = 能被5整除的数字中所有偶数的和;
  75. //13 1 2 3 4 5 6 7 8 9 10 20 16 18
  76. if(i % 5 == 0 && i % 2 == 0)
  77. A1.push_back(i);
  78. //A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
  79. else if(i % 5 == 1)
  80. A2.push_back(i);
  81. //A3 = 被5除后余2的数字的个数;
  82. else if(i % 5 == 2)
  83. A3.push_back(i);
  84. //A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
  85. else if(i % 5 == 3){
  86. A4.push_back(i);
  87. // cout << i << endl;
  88. }
  89. //A5 = 被5除后余4的数字中最大数字。
  90. else if(i % 5 == 4)
  91. A5.push_back(i);
  92. else{
  93. }
  94. }
  95. // cout << A1.size() << endl;
  96. for(size_t i = 0;i < A1.size();i++)
  97. sumA1 += A1[i];
  98. for(size_t i = 0; i < A2.size();i++)
  99. sumA2 += A2[i]*pow(-1,i);
  100. if(A4.size()){
  101. for(size_t i = 0;i< A4.size();i++)
  102. sumA4 += A4[i];
  103. sumA4 /= A4.size();
  104. }
  105. //小数点后留一位
  106. // sumA4 = (float)(int)((sumA4 + 0.05)*10)/10;
  107. if(A5.size()){
  108. sumA5 = A5[0];
  109. for(size_t i = 0;i < A5.size();i++){
  110. if(A5[i] > sumA5)
  111. sumA5 = A5[i];
  112. }
  113. }
  114. string sumA1Str = "N",sumA2Str = "N",sumA3Str = "N",sumA4Str = "N",sumA5Str = "N";
  115. stringstream sumA1stream,sumA2stream,sumA3stream,sumA4stream,sumA5stream;
  116. if(sumA1 != 0){
  117. sumA1stream << sumA1;
  118. sumA1Str = sumA1stream.str();
  119. }
  120. if(sumA2 != 0){
  121. sumA2stream << sumA2;
  122. sumA2Str = sumA2stream.str();
  123. }
  124. if(A3.size() != 0){
  125. sumA3stream << A3.size();
  126. sumA3Str = sumA3stream.str();
  127. }
  128. if(sumA4 != 0){
  129. // sumA4stream << sumA4;
  130. // sumA4Str = sumA4stream.str();
  131. }
  132. if(sumA5 != 0){
  133. sumA5stream << sumA5;
  134. sumA5Str = sumA5stream.str();
  135. }
  136. // cout << sumA1 << " " << sumA2 << " " << A3.size() << " " << sumA4 << " " << sumA5 << endl;
  137. if(sumA4 != 0 )
  138. cout << sumA1Str << " " << sumA2Str << " " << sumA3Str << " " << setiosflags(ios::fixed) << setprecision(1) << sumA4 << " " << sumA5Str << endl;
  139. else
  140. cout << sumA1Str << " " << sumA2Str << " " << sumA3Str << " " << "N" << " " << sumA5Str << endl;
  141. }
  142. return 0;
  143. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/93719
推荐阅读
相关标签
  

闽ICP备14008679号