Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ManiKKK
2 / 2 / 0
Регистрация: 29.06.2016
Сообщений: 178
1

Используя операции деления нацело и взятия остатка от деления, определить, имеется ли в записи числа цифра k

21.09.2016, 15:04. Просмотров 1779. Ответов 7
Метки нет (Все метки)

Полное условие: Дано натуральное число n. Используя операции деления нацело и взятия остатка от деления, определить, имеется ли в записи числа цифра k, где k – случайное число.
Есть наработки:
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>
#include <conio.h>
#include <stdio.h>
#include <cstdlib>
#include <ctime>
 
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian" );
 
int n,i,k;
bool f;
cout << "Введите число" << endl;
cin >> n;
srand( time( 0 ) ) ;
k = rand() % 5; 
cout << "Случайное число = " << k << endl;
 
i= n % 10;
  n= n / 10;
 
  if (i==k){
  cout << "В записи числа имеется случайное число" << endl;
  }
  else {
    cout << "В записи числа нет случайного числа" << endl;        
  }
  
system("PAUSE");
return 0;
}
Проблема вот в чем, объясню на примере. При вводе числа 32(или любого другого, кроме однозначных) и случайном числе равному 3 программа скажет что в записи числа нет случайного числа, а если мы введем число 23, то тогда программа скажет что случайное число есть в записи числа. В общем она читает только последнюю цифру введенного числа. Надеюсь понятно изъяснился. Нужен хелп)
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2016, 15:04
Ответы с готовыми решениями:

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра 2
//Дано целое число N(&gt; 0).С помощью операций деления нацело и взятия остатка от деления определить,...

Дано целое число N(>0).используя операции деления нацело и взятия остатка от деления, найти количество и сумму его цифр
Дано целое число N(&gt;0).используя операции деления нацело и взятия остатка от деления, найти ...

Используя операции деления нацело и взятия остатка от деления определить, присутствует ли в записи числа N цифра «2»
Дано целое число N. Используя операции деления нацело и взятия остатка от деления определить,...

С помощью операции деления нацело и взятия остатка от деления определить имеется ли в записи числа n цифра "2"
я решила задачу но она выводит только однозначные цифры а многозначные не решает. может я решила...

7
SpBerkut
Объявлятель переменных
955 / 279 / 279
Регистрация: 24.09.2011
Сообщений: 1,023
Завершенные тесты: 2
21.09.2016, 15:29 2
Определяем, есть ли цифра n в числе x.
C++
1
2
3
4
5
6
bool foo(unsigned x, const unsigned n){
    bool r=x%10==n;
    while (!r&&(x/=10))
        r=x%10==n;
    return r;
}
1
ManiKKK
2 / 2 / 0
Регистрация: 29.06.2016
Сообщений: 178
21.09.2016, 15:51  [ТС] 3
Цитата Сообщение от SpBerkut Посмотреть сообщение
C++
1
2
3
    bool r=x%10==n;
    while (!r&&(x/=10))
        r=x%10==n;
Я зеленый. Несколько вопросов по синтаксису:
r=x%10==n; - Это значит переменной r присваиваем значение остатка от деления, после чего присваиваем это значение переменной n?
while (!r&&(x/=10)) - Повторять пока r и x не равны 10?
Сори за супер глупые вопросы, просто хочу разобраться.
0
SpBerkut
Объявлятель переменных
955 / 279 / 279
Регистрация: 24.09.2011
Сообщений: 1,023
Завершенные тесты: 2
21.09.2016, 16:12 4
Лучший ответ Сообщение было отмечено ManiKKK как решение

Решение

Если чуть расширить, то получим.
C++
1
2
3
4
5
6
7
8
9
bool foo(unsigned x, const unsigned n){
    bool r=false; // изначально полагаем, что цифры нет
    while (!r&&(x>0)) // пока цифра не найдена и все цифры не проверены
    {
        r = x%10 == n;  // проверяем последнюю цифру
        x /= 10; // убираем последнюю цифру из проверяемого числа
    }
    return r;
}
1
ManiKKK
2 / 2 / 0
Регистрация: 29.06.2016
Сообщений: 178
21.09.2016, 16:27  [ТС] 5
Подставил в свою программу, получилось следующее:
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <cstdlib>
#include <ctime>
 
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian" );
 
int n,i,k;
bool f=false;
cout << "Введите число" << endl;
    cin >> n;
srand( time( 0 ) ) ;
k = rand() % 5; 
cout << "Случайное число = " << k << endl;
 
while (!f&&(n>0)){
    
    f = n%10 == k;
    n = n/10;
}
 
return f;
 
  if (f==true){
  cout << "В записи числа имеется случайное число" << endl;
  }
  else {
    cout << "В записи числа нет случайного числа" << endl;    
    
  }
  
system("PAUSE");
 
}
Но прога не выводит ни что цифра есть, ни что ее нет.
0
atForce
10 / 11 / 3
Регистрация: 13.06.2015
Сообщений: 54
21.09.2016, 16:31 6
Цитата Сообщение от ManiKKK Посмотреть сообщение
return f;
в этот момент у тебя завершается выполнение функции main() и до следующих строк дело не доходит. В твоем случае можно просто убрать эту строку. Пример выше тебе привели в виде отдельной функии.
1
SpBerkut
Объявлятель переменных
955 / 279 / 279
Регистрация: 24.09.2011
Сообщений: 1,023
Завершенные тесты: 2
21.09.2016, 16:35 7
Цитата Сообщение от ManiKKK Посмотреть сообщение
Но прога не выводит ни что цифра есть, ни что ее нет.
Уберите 26-ю строку.
1
ManiKKK
2 / 2 / 0
Регистрация: 29.06.2016
Сообщений: 178
21.09.2016, 16:37  [ТС] 8
Спасибо за помощь)
0
21.09.2016, 16:37
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2016, 16:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2»
Добрых времени суток. Помогите доделать программу,пожалуйста,завтра сдавать,а довести до рук не...

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2»
Дано целое число N (&gt; 0). С помощью операций деления нацело и взятия остатка от деления определить,...

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2» через DO WHILE
Дано целое число N (&gt; 0). С помощью операций деления нацело и взятия остатка от деления определить,...

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N чётные цифры
Дано целое число N.С помощью операций деления нацело и взятия остатка от деления определить,имеется...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.