• Помогите с задачками по С++

    Среди N целых положительных чисел не больше 1000 найти числа с
    наибольшей суммой цифр и наименьшей. Если таких чисел несколько,
    то следует выбирать те, что идут в перечне первыми.
    В первой строке дано число N (N <= 1000). В следующей строке
    содержатся же числа. В выходной поток вывести два числа через пробел,
    соответствующие условию задачи. Сначала вывести число с наибольшей
    суммой цифр, а затем с наименьшей.

    Входные данные
    5
    12 10 101 1000 102

    Выходные данные
    12 10

Ответы 5

  • Я тут немного поменял код под себя и он неправильно работает. Можешь обьяснить, где ошибка? А то я слишком дремучий.
  • Ну если напишешь как поменял
    • Автор:

      winnie30
    • 5 лет назад
    • 0
  • #include <iostream>using namespace std;int f (int n){int s=0;s=n/1000+n%1000+n/100+n%100+n/10+n%10+n;return s;}int main(){int nf,num,a,chm=0,chmax=0,min1=0,max1=0;cin>>a;for(int i=1;i<=a;i++){cin>>num;nf=f(num);if(nf<min1){ min1=nf; chm=num;}if(nf>max1){ max1=nf; chmax=num;}}cout<<chmax<<" "<<chm;}
    • Автор:

      ozzy
    • 5 лет назад
    • 0
  • Потому-что перекаверкали функцию (в таком плане как у вас - очень длинная будет) и потому-что сделали минимальное число сразу 0 (а куда еще меньше?) Вот так опять будет работать
  • #include <iostream>using namespace std;int f (int n){int s=0;for(int i=1000;i>1;i/=10){ s+=n/i; n%=i;}return s+n;}int main(){int nf,num,a,chm=0,chmax=0,min1=30,max1=0;cin>>a;for(int i=1;i<=a;i++){cin>>num;nf=f(num);if(nf<min1){min1=nf;chm=num;}if(nf>max1){max1=nf;chmax=num;}}cout<<chmax<<" "<<chm;}
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years