Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.90
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
#1

Найти произведение четных цифр этого числа. Верно ли, что число содержит данную цифру А более двух раз - C++

19.09.2012, 21:38. Просмотров 3931. Ответов 24
Метки нет (Все метки)

Видел похожу здесь на форуме но она на pascale как писать в c++ я не понял.
Дано натуральное число. Найти произведение четных цифр этого числа. Верно ли, что число со-держит данную цифру А более двух раз (А вводить с клавиатуры).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2012, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти произведение четных цифр этого числа. Верно ли, что число содержит данную цифру А более двух раз (C++):

Дано натуральное число n. Верно ли, что сумма цифр этого числа является чётной - C++
У меня никак не получается сделать эту лабу. Очень прошу.срочно 1. Дано натуральное число n. Верно ли, что сумма цифр этого числа...

дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! - C++
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!!...

Pascal -> С++ (определить вторую цифру дробной части частного от деления суммы первой и третьей цифр трехзначного числа на вторую цифру этого числа) - C++
Составить программу. выполняющую операции целочисленной арифметики Определить вторую цифру дробной части частного от деления суммы...

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа - C++
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не...

Найти числа, встречающиеся более двух раз (исправить вывод) - C++
Здравствуйте форумчане) Делаю лабу по программирвоанию, всё написал и даже работает но вывод результата очень корявый(неправильный),...

Найти все трехзначные числа: "Само число и сумма цифр этого числа делятся на одно и то же число P" - C++
Помогите решить задачу :Найти все целые 3-х знатные числа,удовлетворяющие условию:Само число и сумма цифр этого числа делятся на одно и то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.09.2012, 21:56 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
 int a,n,x=0,prod=1;
 std::cout<<"Number, A: ";
 std::cin>>n>>a;
 while (n)
  {
   if((n%10)%2==0)
    prod*=(n%10);
   if ((n%10)==a)
    x++;
   n/=10;
  }
 std::cout<<"Product: "<<prod<<"\n"; 
 (x>2)? std::cout<<"True\n": std::cout<<"False\n";
 system("pause");
 return 0;
}
1
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
19.09.2012, 22:03  [ТС] #3
Спс, но хочу сделать через for но пока очень плохо понимаю. И не могу понять как мне сделать умножение четных чисел.
Вот пока что я сам сделал :
int main()
{
int n;
setlocale(LC_ALL, "Russian");

Console::WriteLine(L"Введите натуральное число");
cin>>n;
if(n>=0)
{
int j;
for(j=1; j<=n; j++)
if(j % 2 == 0)
cout<<j ;
Пока что вот он мне выводит четные числа, но как умножить их даже не представляю
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.09.2012, 22:10 #4
Если просто перемножить четные, то можно и так:
C++
1
2
3
4
5
6
7
int prod=1;
...
if(j % 2 == 0)
 { 
  prod=prod*j;
  cout<<j ;
 }
Т.е. должна быть переменная (назовем, например, prod), равная 1, т.к. если выполняется условие четности, то четное число умножается на эту переменную. И так каждый раз, пока не пройдет весь цикл.
0
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
19.09.2012, 22:22  [ТС] #5
Что то не получается ввожу 6 консоль выдает 7, ввожу 7 выводится 8. Может не правильно применил новую переменную?
nt main()
{
int n, m=1;
setlocale(LC_ALL, "Russian");

Console::WriteLine(L"Введите натуральное число");
cin>>n;
if(n>=0)
{
int j;
for(j=1; j<=n; j++)
if(j % 2 == 0)
m=m*j;
cout<<j;
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.09.2012, 22:28 #6
freshness, выводить нужно m.
1
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
19.09.2012, 22:36  [ТС] #7
Так отлично это сделал, все проверил работает, теперь нужно сделать вторую часть.
Верно ли, что число со-держит данную цифру А более двух раз (А вводить с клавиатуры).
Как я понял когда у меня получится произведение четных чисел выходит например число 1421 и если у меня A будет 4 то это меньше двух, а если 4044 то уже больше двух. Пока тоже не очень понимаю как это сделать, ваш код сложноватый, как я понимаю можно и попроще написать.
Пока что код такой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
   { 
       int n,a,m=1;
   setlocale(LC_ALL, "Russian");
 
    Console::WriteLine(L"Введите натуральное число");
    cin>>n;
if(n>=0)   
{
    int j;
for(j=1; j<=n; j++)
 
if(j % 2 == 0) 
m=m*j;
cout<<"Произведение четных чисел="<<m<< endl;
 
Console::WriteLine(L"Введите A");
    cin>>a;
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.09.2012, 22:46 #8
freshness, да, все так. Код вроде совсем не сложный. Можно по порядку:
Вводим число n, например, то же 4044. Теперь нужно получить все его цифры. Это делается в цикле:
C++
1
2
3
4
5
6
7
8
while (n) //т.е пока n не будет=0 в результате деления его на 10.
  {
   if((n%10)%2==0) //n%10 - это последняя цифра числа. Ее и проверяем на четность
    prod*=(n%10); //если она четная, то перемножаем.
   if ((n%10)==a) //если эта цифра = введенной A с клавиатуры
    x++; //увеличиваем счетчик
   n/=10; //отсекаем эту цифру от числа и так далее по циклу
  }
1
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
19.09.2012, 23:09  [ТС] #9
Цитата Сообщение от BumerangSP Посмотреть сообщение
freshness, да, все так. Код вроде совсем не сложный. Можно по порядку:
Вводим число n, например, то же 4044. Теперь нужно получить все его цифры. Это делается в цикле:
C++
1
2
3
4
5
6
7
8
while (n) //т.е пока n не будет=0 в результате деления его на 10.
  {
   if((n%10)%2==0) //n%10 - это последняя цифра числа. Ее и проверяем на четность
    prod*=(n%10); //если она четная, то перемножаем.
   if ((n%10)==a) //если эта цифра = введенной A с клавиатуры
    x++; //увеличиваем счетчик
   n/=10; //отсекаем эту цифру от числа и так далее по циклу
  }
А через for или как то по другому можно сделать ? Если делать продолжение к моему коду. Просто по вашему коду я не понимаю что обозначает (n%10) и if ((n%10)==a) это не понимаю. А вот то что я написал, там я уже понимаю как, что работает, и если продолжение в том стиле буду писать, то мне так легче понять и следующую похожую задачу я уже сам смогу сделать.



Ну с вашим кодов чуть разобрался n%10 тоже немного понял шас попробую как нить сделать
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.09.2012, 23:25 #10
n%10 означает остаток при делении n на 10. Остаток при делении 4044 на 10 = 4. При делении, например, 78 на 10 остаток = 8 и т.д.
И в Вашем коде перемножаются не цифры числа, а числа от 1 до n. Вам это нужно?
0
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
19.09.2012, 23:30  [ТС] #11
В общем как я понял сначала я ввожу натуральное число к примеру 6 программа должна найти произведение четных цифр числа, т.е четными будут 2-4-6. При умножении получается 48. Дальше как я понял вводится A к примеру я ввожу A=4. То в числе 48 число 4 встречается меньше двух раз. Вроде как то так, вот только по моему коду если я пробую большое число ввести у меня произведение 0 равно, значит ошибка какая то.
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.09.2012, 23:36 #12
freshness, четных цифр числа n, а не чисел до n. Цифры - это от 0 до 9. Например, вводим n=4044 и перебираем его цифры, т.е. 4,0,4 и 4. Перебор идет в цикле. А потом уже смотрим, сколько у него цифр соответствуют введенной цифре A.
1
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
19.09.2012, 23:57  [ТС] #13
Спасибо, что помогли даже задание правильно понять. Мда. Ладно сейчас буду все переделывать.

Добавлено через 16 минут
Мда, а код все равно не клеется.
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
20.09.2012, 18:03 #14
freshness, можно начать по порядку. Что не выходит? Вы в общем (не с точки зрения программирования) понимаете, как нужно решать задачу?
1
freshness
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
21.09.2012, 11:02  [ТС] #15
Да именно я не могу понять принцип работы программы, а точнее как в ней выполняется цикл. Например число 4044 как цикл выводит четные цифры данного числа.
Т.е я раньше думал что задача решается по другому и понял как делать, а здесь пока не могу понять.

Добавлено через 1 час 21 минуту
Сейчас например хочу сделать первую часть ввожу число например 4044 и хочу что бы перемножил и вывел в консоли уже результат произведения.

while (n) //т.е пока n не будет=0 в результате деления его на 10.
{
if((n%10)%2==0) //n%10 - это последняя цифра числа. Ее и проверяем на четность - это я понял.
prod*=(n%10); //если она четная, то перемножаем. - умножение у меня как то неправильно происходит.
x++; //увеличиваем счетчик
n/=10; //отсекаем эту цифру от числа и так далее по циклу
}
В консоли выводит полный процесс перемножения и результат не всегда правильный зависит еще от того какое число я ввожу.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2012, 11:02
Привет! Вот еще темы с ответами:

Проверить условие: сумма цифр заданного числа N превосходит произведение цифр этого же числа на 1 - C++
Составит линейную логическую программу, печатающую значение 1, если указанное высказывание является истинным, и 0 – в противном случае:...

Задача логические функции (составить функцию, которая определяет верно ли что сумма цифр числа четное число) - C++
Помогите нужно составить функцию, которая определяет верно ли что сумма цифр числа четное число. обязательно использовать логическую...

Дано число n. Верно ли, что это число содержит ровно 3 одинаковых цифры - C++
Помогите пожалуйста с решением очень надо.))) С++ Добавлено через 44 минуты Парни выручайте... осталось 30 минут((( срочно нужно, а...

Верно ли, что в числе есть цифра, встречающаяся 2 и более раз? - C++
Ввести 4-х значное число. Верно ли, что в этом числе есть цифра, встречающаяся 2 и более раз.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.09.2012, 11:02
Ответ Создать тему
Опции темы

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