当前位置:   article > 正文

杭电oj---DIY--1005_oj杭电

oj杭电

作者:莫启飞

环境:vs2019

Problem Description

已知一个数列,它的循环周期为30,且前30项的值分别为0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1。现在给定该数列的前两项,你能计算得到第三项的值吗?

Input

第一行数据组数T(T <= 30),对于每组数据两个整数a, b(0<= a, b<=15),表示前两项的大小。

Output

每组数据占一行,表示第三项的值。

Sample Input

2
0 1
11 10

Sample Output

2
9
  1. //代码1
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include<stdio.h>
  4. const int A[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
  5. int T;
  6. int a, b;
  7. int main(void)
  8. {
  9. scanf("%d", &T);
  10. while (T--)
  11. {
  12. scanf("%d%d", &a, &b);
  13. for (int i = 0;; ++i)
  14. {
  15. if (A[i] == a && A[i + 1] == b)
  16. {
  17. printf("%d\n", A[i + 2]);
  18. break;
  19. }
  20. }
  21. }
  22. return 0;
  23. }
  24. 代码2:
  25. #include <iostream>
  26. using namespace std;
  27. int main()
  28. {
  29. int T;
  30. cin >> T;
  31. int a, b, flag;
  32. while (T--)
  33. {
  34. cin >> a >> b;
  35. if (a < b)
  36. {
  37. flag = (b == 15) ? -1 : 1;
  38. }
  39. if (a > b)
  40. {
  41. flag = (b == 0) ? 1 : -1;
  42. }
  43. cout << b + flag << endl;
  44. }
  45. return 0;
  46. }
  47. 我的错误代码;
  48. #include<iostream>
  49. using namespace std;
  50. const int arr[] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 };
  51. void sum() {
  52. int a, b;
  53. cin >> a;
  54. cin >> b;
  55. if (a < b) {
  56. cout << arr[b + 1] << endl;
  57. }
  58. else if(a>b){
  59. cout << arr[a + 1 ] << endl;
  60. }
  61. }
  62. int main() {
  63. int n;
  64. cin >> n;
  65. while (n--) {
  66. sum();
  67. }
  68. cout << endl;
  69. return 0;
  70. }

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

闽ICP备14008679号