C/C++

Задачка по инфе, C++

Рассматривается множество целых чисел, принадлежащих числовому отрезку [4563; 7912], которые удовлетворяют следующим условиям: а) число кратно 7; б) сумма старшего и младшего разрядов больше 10. Найдите наибольшее из таких чисел и их количество. В ответе запишите два числа через пробел: сначала наибольшее число, затем количество.
 #include  
using namespace std;
int main(void)
{
int cnt = 0;
int mx;
for (int i=4564; i10)
{
cnt+=1;
mx = i;
}
}
cout
Владимир Миллер
Владимир Миллер
5 270
Лучший ответ
 #include  
#include
#include
using namespace std;
int sum_front_and_back(const int x) {
if (x < 10) return x;
const auto base = static_cast(log10(x));
const auto rank = static_cast(pow(10, base));
return x / rank + x % 10;
}
bool more(const int a, const int b) {
return a > b;
}
bool aliquot(const int num, const int dv) {
return 0 == num % dv;
}
int main() {
const auto dv = 7;
const auto fb = 10;
const auto a = 4564;
const auto b = 7912;
auto max = numeric_limits::min();
auto count = 0;
for (auto x = a; x
Les-Las Лсл...
78 666
#include <iostream>
int main() { int i, k = 0, m;
for (i = (4563+6)/7*7; i <= 7912; i += 7)
if (i / 1000 + i % 10 > 10) { m = i; k++; }
std::cout << m << ' ' << k; }
Сергей Федотов
Сергей Федотов
66 572
 #include 
constexpr int a = 4563, b = 7912;

int main()
{
int begin = a % 7 ? a + (7 - a % 7) : a;
int count{}, max_n{};
for (; begin 10) { max_n = std::max(begin, max_n); count++; }
}
std::cout
Аndrr Andr
Аndrr Andr
51 416