Как найти количество четных чисел в промежутке

0 / 0 / 0

Регистрация: 06.06.2021

Сообщений: 2

1

06.06.2021, 19:12. Показов 4354. Ответов 6


Студворк — интернет-сервис помощи студентам

Даны два вещественных числа a и b. программа, выводящая сначала
последовательность нечетных целых чисел в диапазоне от a до b, а затем
четных (в том же диапазоне)



0



Lotrik17

0 / 0 / 0

Регистрация: 06.06.2021

Сообщений: 2

08.06.2021, 12:57

 [ТС]

2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main()
{
    int a, b;
    cout << "Enter A: ";
    cin >> a;
    cout << "Enter B: ";
    cin >> b;
    while (a <= b) {
        cout << "chet:";
        if (a % 2 != 0) cout << " " << a << "t ";
        a++;
        cout << "nchet";
        if (a % 2 == 0) cout << " " << a << "t ";
        a++;
    }
    cout << endl;
    return 0;
}

у меня получилось только вот так но хотелось бы что бы сначала выводились все четные а потом все нечетные .



0



429 / 312 / 129

Регистрация: 09.02.2021

Сообщений: 1,096

Записей в блоге: 1

08.06.2021, 13:26

3

Lotrik17, прочтите условие

Цитата
Сообщение от Lotrik17
Посмотреть сообщение

Даны два вещественных числа a и b.

тоесть double , а у вас почему то int



1



Verevkin

Нарушитель

8586 / 4591 / 1058

Регистрация: 12.03.2015

Сообщений: 21,535

08.06.2021, 14:26

4

Цитата
Сообщение от Lotrik17
Посмотреть сообщение

у меня получилось только вот так но хотелось бы что бы сначала выводились все четные а потом все нечетные .

Выводить-то зачем? Задача — найти количество чётных и нечётных.
Цикл тут не нужОн.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// расчёт количества чётных и нечётных чисел в интервале [A,B]
// для целых А и В
unsigned foo(int A, int B, unsigned &odd, unsigned &even)
{
  if (A > B) return foo(B, A, odd, even);
  unsigned total = 1 + B - A; // всего 
  odd  = (total / 2) + (A & total & 1); // чётных 
  even = total - odd; // нечётных
  return total;
}
 
// расчёт количества чётных и нечётных чисел в интервале [A,B]
// для вещественных А и В
unsigned foo(double A, double B, unsigned &odd, unsigned &even)
{
  if (A > B) return foo(B, A, odd, even);
  int a = ceil(A);  // меньшее округляем до большего целого (вправо),
  int b = floor(B); // большее - до меньшего целого (влево).
  return foo(a, b, odd, even);
}



0



HoMLoL

13 / 7 / 7

Регистрация: 08.04.2021

Сообщений: 54

08.06.2021, 15:33

5

Цитата
Сообщение от Verevkin
Посмотреть сообщение

Выводить-то зачем?

Цитата
Сообщение от Lotrik17
Посмотреть сообщение

выводящая сначала
последовательность нечетных целых чисел в диапазоне от a до b, а затем
четных (в том же диапазоне)

Думаю вы поняли что выводить нужно)

Мой варик:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
int main() {
    int a, b, k_chet = 0, k_nchet = 0;
    cin >> a >> b;
    cout << "chet: ";
    for (int i = a; i <= b; i++) {
        if (i % 2 == 0) {
            cout << i << " "; k_chet++;
        }
    }
    cout << endl << "kol chet: " << k_chet << endl;
    cout << "nchet: ";
    for (int i = a; i <= b; i++) {
        if (i % 2 != 0) {
            cout << i << " "; k_nchet++;
        }
    }
    cout << endl << "kol nchet: " << k_nchet << endl;
    return 0;
}



0



Нарушитель

8586 / 4591 / 1058

Регистрация: 12.03.2015

Сообщений: 21,535

08.06.2021, 15:43

6

Цитата
Сообщение от HoMLoL
Посмотреть сообщение

Думаю вы поняли что выводить нужно)

А шапка треда противоречит заголовку.
Да и прикинь, сколько будет выполняться твоя прога с выводом для a = -2·109 и b = 2·109.



0



7427 / 5021 / 2891

Регистрация: 18.12.2017

Сообщений: 15,694

08.06.2021, 15:56

7

HoMLoL, перед тем как сбрасывать код, читайте что написано выше:

Цитата
Сообщение от Lotrik17
Посмотреть сообщение

Даны два вещественных числа a и b

Цитата
Сообщение от matviiv
Посмотреть сообщение

то есть double , а у вас почему то int

Lotrik17, это предложение входит в условие задачи ?

Цитата
Сообщение от Lotrik17
Посмотреть сообщение

Посчитать количество нечётных и четных чисел в интервале от A до B включительно

напишите оригинал условия задачи



0



Как посчитать количество четных чисел?

Есть ли в Excel встроенная функция подсчёта количества четных чисел на заданном промежутке [a,b]?


  • Вопрос задан

    более года назад

  • 267 просмотров

Пригласить эксперта

Привет!

=СУММ(ОСТАТ(<Диапазон>;2)) — для нечетных
=СУММ(1 — ОСТАТ(<Диапазон>;2)) — для четных чисел

Чтобы подсчет сработал, нужно ввести формулу и вместо Enter нажать Ctrl + Shift + Enter, тогда формула сработает для массива чисел и будет заключена в фигурные скобки, примерно так:
626b848e5beef019703171.png


  • Показать ещё
    Загружается…

28 мая 2023, в 02:05

7000 руб./за проект

27 мая 2023, в 23:03

10000 руб./за проект

27 мая 2023, в 22:55

1000 руб./за проект

Минуточку внимания

Определить количество ячеек в диапазоне можно формулой =СЧЁТ(диапазон)

количество четных ячеек можно вычислить как разность между общим количеством ячеек диапазона и количеством ячеек с нечетными значениями.

Формула для подсчёта количества нечетных ячеек =СУММ(ОСТАТ(диапаз­он;2)) (подробное объяснение формулы )

В итоге получится формула массива (завершаем ввод CTRL+SHIFT+ENTER­)

=СЧЁТ(диапазон)-СУ­ММ(ОСТАТ(диапазон;2))­

Пример:

Подсчитать количество четных чисел в диапазоне B2:B7

формула:

=СЧЁТ( B2:B7 ) — СУММ( ОСТАТ( B2:B7 ; 2 ))

результат

Не уверен в ответе?

Найди верный ответ на вопрос ✅ «Найти количество четных чисел в промежутке от 1 до N. N вводится с клавиатуры. В Паскале! …» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.

Искать другие ответы

Assuming you mean even and odd numbers your problem lies in this code:

for (i=n; i<=m; i++) {
    if (i%2 == 0){
        a=a+i;   // increase number of even numbers by i
    }
    else {
        b=b+i;   // increase number of odd numbers by i
    }
}

What you might want do to do is add 1 (instead of whatever i is):

 for (i = n; i <= m; ++i) {
    if (i % 2 == 0)
        ++a;   // increase number of even numbers by one
    else 
        ++b;   // increase number of odd numbers by one
 }

Also I’d suggest using better variable names, for example even and odd instead of a and b and so on. It makes code easier to understand for everybody, even for you.

Just a little more tips. Assigning variables as soon as you declare them is good practice:

int m = 0;

You can declare variable inside of for loop, and in your case there is no need to declare it out of it:

for (int i = n; i <= m; ++i) { ... }

Example how it can change look and clarity of your code:

#include <iostream>

using namespace std;

int main() {
    int from = 0,
        to   = 0,
        even = 0,
        odd  = 0;

    cout << "Enter a number that begins interval: ";
    cin >> from;

    cout << "Enter a number that ends interval: ";
    cin >> to;

    for (int i = from; i <= to; ++i) {
        if (i % 2 == 0)
            ++even;
        else 
            ++odd;
    }

    cout << " even numbers: " << even << endl;
    cout << " odd numbers: " << odd << endl;

    return 0;  // don't forget this! main is function returning int so it should return something
}

Понравилась статья? Поделить с друзьями:
  • Как найти пчелиные соты майнкрафт
  • Как исправить боль в ноге
  • Как составить деловое письмо для руководителя секретарю
  • Как составить договор аренды квартиры с юридическим лицом
  • Как найти жучки в автомобиле