1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 83
1

Найти в массиве количество четных чисел, сумма цифр в которых не превышает заданного числа P

27.12.2016, 16:20. Показов 1470. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти количество четных чисел, сумма цифр в которых не превышает заданного числа P.
При вводе Р=11 все считает правильно , но стоит ввести другое число, то количество считает не правильно.Что не так ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
 
int Count(int *a, int P);
 
int main()
{
    int a[5] = {345,2620,14492,1450,12206};
    int P;
    cout << "LABA_3_ZAD_1" << endl;
    cout << "P="; cin >> P;
    for (int i = 0; i<5; i++)
        cout << a[i] << endl;
        cout << "\n-------------" << endl;
 
    cout << "count=" << Count(a, P) << endl;
    system("pause");
}
 
 
int Count(int *a, int P)
{
    int d, Sum, counter = 0;
 
    for (int i = 0; i<5; i++)//Идем по всем элементам массива
    {
        Sum = 0;
        d = a[i];
        if (!(a[i] % 2))//Определяем четность
        {
            while (d % 10)
            {
                Sum += d % 10;
                d /= 10;
            }
            if (Sum <= P)
            {
                counter++;
                cout << a[i] << endl;
            }
        }
 
    }
    return counter;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2016, 16:20
Ответы с готовыми решениями:

Найти количество четных чисел, сумма цифр в которых не превышает заданного числа P
Помогите пожалуйста решить задачу! Прикрепил.

Найти количество четных чисел массива сумма цифр в которых не превышает заданного числа
После выполнения программы должен вывести на экран элементы массива, которые удовлетворяют условию...

Найти сумму нечётных чисел последовательности , количество цифр в которых не превышает заданного числа P
Пусть имеется последовательность произвольных целых ненулевых чисел, завершающаяся числом 0 (число...

В матрице найти количество строк, сумма модулей элементов которых не превышает заданного числа
помогите пожалуйста очень надо решить задачу В квадратной матрицы действительных чисел (8x8)...

8
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
27.12.2016, 16:32 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    vector<int>v {345,2620,14492,1450,12206,10,13,14};
    int p;
    cin>>p;
    cout<<count_if(v.cbegin(),v.cend(),[&p](const int &x) {
        int sum=0;
        string s1=to_string(x);
        for_each(s1.cbegin(),s1.cend(),[&sum](const char &c) {
            string cc {c};
            sum+=stoi(cc);
        });
        return x%2==0 && sum<=p;
    });
}
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 83
27.12.2016, 16:37  [ТС] 3
Peoples, а мою как то можно чтобы через функцию осталось нахождение ?

Добавлено через 32 секунды
изменить*
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
27.12.2016, 16:50 4
Замени в 33 строке:
C++
1
while (d > 0)
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 83
27.12.2016, 16:57  [ТС] 5
likehood, помогло частично, если скажем ввести 50 должны все числа почситать но нет , не могу понять в чем ошибка?
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
27.12.2016, 16:59 6
Так у тебя первое число нечётное, вот оно и не учитывается.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.12.2016, 17:14 7
Peoples, создавать строку из одного символа, чтобы потом вызвать stoi - явно не нужно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
 
int main()
{
    const int a[] = {345, 2620, 14492, 1450, 12206, 10, 13, 14}, p = 11;
    std::cout << std::count_if(std::begin(a), std::end(a), [&p](const int &x)
    {
        const std::string s = std::to_string(x);
        return std::accumulate(s.begin(), s.end(), 0) - '0' * s.length() <= p;
    });
}
0
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
27.12.2016, 17:29 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
int main()
{
  unsigned short result = 0;
  unsigned short sum = 0;
  unsigned short backup = 0;
 
  const unsigned short SIZE = 5;
  const unsigned short P = 10;
 
  unsigned short array[SIZE] = {16, 32, 64, 128, 256};
 
  for (size_t i = 0; i < SIZE; i++) {
    sum = 0;
    if (array[i] % 2 == 0) { // Проверить на четность
      backup = array[i]; // Записать число в отдельную переменную
      sum += backup % 10; // Сложить последнюю цифру с суммой
      while (backup /= 10) { // Пока есть цифры в числе
        sum += backup % 10;   // Складываем их (с конца)
      }
      if (sum >= P) {
        std::cout << array[i] << " "  << sum << std::endl;
        ++result;
      }
    }
  }
 
  std::cout << "Result: " << result << std::endl;
 
  return 0;  
}
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.12.2016, 17:39 9
С проверкой чётности
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
 
int main()
{
    const int a[] = {345, 2620, 14492, 1450, 12206, 10, 13, 14}, p = 11;
    std::cout << std::count_if(std::begin(a), std::end(a), [&p](const int &x)
    {
        const std::string s = std::to_string(x);
        return !(x & 1) && std::accumulate(s.begin(), s.end(), 0) - '0' * s.length() <= p;
    });
}
1
27.12.2016, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2016, 17:39
Помогаю со студенческими работами здесь

В заданном массиве найти количество элементов, для которых отклонение от заданного числа А не превышает величины Р
В заданном массиве найти количество элементов, для которых отклонение от заданного числа А не...

Написать программу, которая высчитывает количество четных чисел, не превышающих заданного значения, сумма цифр которых также является четным числом.
Написать программу с использованием подпрограмм. В подпрограммах не должно присутствовать ввода...

В целочисленном массиве размером n*n удалить строки, в которых сумма элементов не превышает заданного числа
Помогите пожалуйста с заданием, в массиве размером n*n, элементы которого являются целыми числами,...

Найти n первых простых чисел, сумма цифр у которых меньше заданного числа
Помогите написать программу! Условие: найти n первых простых чисел, сумма цифр у которых меньше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru