fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstdint>
  4. #include <algorithm>
  5.  
  6. typedef std::vector<std::uintmax_t> DType;
  7.  
  8. DType MakeVector() {
  9. DType D = { 98, 100, 198, 200, 250, 298 };
  10. std::sort(D.begin(), D.end());
  11. return D;
  12. }
  13.  
  14. std::uintmax_t MakeHoge(const DType& D, std::uintmax_t N) {
  15. std::size_t i = 0;
  16. for (i=0; i < D.size();i++) {
  17. if (N > D[i]) { continue; }
  18. break;
  19. }
  20.  
  21. if (i == 0) { return D.front(); }
  22. if (i == D.size()) { return D.back(); }
  23. if (D.size() == 1) { return D.front(); }
  24. return std::abs(static_cast<long long>(D[i - 1]- N)) <= std::abs(static_cast<long long>(D[i] - N)) ? D[i - 1] : D[i];
  25. }
  26.  
  27. int main() {
  28. DType D;
  29. std::uintmax_t N = 130;
  30.  
  31. D = MakeVector();
  32. N = MakeHoge(D, N);
  33.  
  34. std::cout << N << std::endl;
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 4532KB
stdin
Standard input is empty
stdout
100