Напишите программу, которая выводит всего 5-значные числа с пятью в них, но не с 8

Моя задача состоит в том, чтобы вывести общее количество пятизначных чисел, которые имеют цифру 5, но не содержат цифр 8. До сих пор у меня было только два ответа 0 или 90000. Кто-нибудь может мне помочь?

#include <iostream>
using namespace std;

int main() {
int number;
int counter=10000;
int ncounter=0;
while (counter >= 10000 && counter <= 99999) {
int n1,n2,n3,n4,n5;
counter = counter + 1;
n1 = number%10;
number /= 10;
n2 = number%10;
number /= 10;
n3 = number%10;
number /= 10;
n4 = number%10;
number /=10;
n5 = number%10;
number /= 10;
if (n1 == 5||n2 == 5||n3 == 5||n4 == 5||n5 == 5)
if (n1!=8)
if (n2!=8)
if (n3!=8)
if(n4!=8)
if (n5!=8)
ncounter=ncounter+1;
}
cout<<ncounter<<endl;
return 0;
}

1

Решение

(число с 5, но не 8) = (число без 8) — (число ни с 8, ни 5) = 8 * 9 * 9 * 9 * 9 — 7 * 8 * 8 * 8 * 8 = 23816

2

Другие решения

Каждое число представляет собой выбор из 5 цифр (с повторениями).

Поскольку вы не можете выбрать цифру 8, у вас есть 9 возможных цифр, поэтому эта проблема эквивалентна той же самой задаче, основание 9 (вместо основания 10).

Если вы сделаете 1 цифру 5, то останется 4 не 5 и не 8 цифр. Количество из них может быть рассчитано как 8^4 (потому что есть 8 доступных цифр на выбор, и вам нужно выбрать 4 из них). С одним 5, есть 5 способов позиционирования 5, так что умножьте на 5.

Аналогично с 2 5, есть 10 способов позиционирования 5 относительно других цифр.

Поэтому у нас есть следующая таблица:

number of digits==5    remaining digits    ways to position 5s
1                      8^4                 5
2                      8^3                 10 = 5*4/2
3                      8^2                 10
4                      8^1                 5
5                      8^0                 1

Есть 5*8^4 + 10*8^3 + 10*8^2 + 5*8^1 + 8^0 = 26281 чисел <10^5 с 5 но не 8,

Есть 4*8^3 + 6*8^2 + 4*8^1 + 8^0 = 2465 чисел <10^4 с 5 но не 8, Поэтому есть 23816 числа, удовлетворяющие вашим критериям.

1

Это на самом деле математическая проблема. Здесь у нас есть три условия:

  1. Первая цифра не ноль, так как она должна быть пятизначной.
  2. Без цифр 8
  3. Одна или несколько цифр 5

Могут быть цифры от одного до пяти 5, где первая цифра равна или не равна 5 (за исключением 55555). Это девять случаев для подсчета.

Если первая цифра не 5, у нее есть 7 опций: [1234679]; если любая другая цифра не 5, у нее есть 8 вариантов: [12346790].

Здесь C (5) — количество комбинаций для размещения 5s, а C (o) — для размещения других цифр.

N(5).  1st?    C(5)   C(o)
1        Y     1   *   8^4
1        N     4   *  7*8^3
2        Y     4   *   8^3
2        N     6   *  7*8^2
3        Y     6   *   8^2
3        N     4   *  7*8
4        Y     4   *  8
4        N     1   *  7
5        Y     1

Sum:     23816
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector