0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
|
1 | |
Найти произведение четных цифр этого числа. Верно ли, что число содержит данную цифру А более двух раз19.09.2012, 21:38. Показов 11910. Ответов 24
Метки нет (Все метки)
0
|
19.09.2012, 21:38 | |
Ответы с готовыми решениями:
24
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! Дано случайное число. Найти произведение четных цифр этого числа Дано натуральное число а. Найти произведение четных цифр этого числа Найти такое число, что сумма его цифр превосходит произведение цифр этого же числа на 1 |
19.09.2012, 21:56 | 2 | |||||
1
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
|
19.09.2012, 22:03 [ТС] | 3 |
Спс, но хочу сделать через for но пока очень плохо понимаю. И не могу понять как мне сделать умножение четных чисел.
Вот пока что я сам сделал :
0
|
19.09.2012, 22:10 | 4 | |||||
Если просто перемножить четные, то можно и так:
0
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
|
19.09.2012, 22:22 [ТС] | 5 |
Что то не получается ввожу 6 консоль выдает 7, ввожу 7 выводится 8. Может не правильно применил новую переменную?
0
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
||||||
19.09.2012, 22:36 [ТС] | 7 | |||||
Так отлично это сделал, все проверил работает, теперь нужно сделать вторую часть.
Пока что код такой
0
|
19.09.2012, 22:46 | 8 | |||||
freshness, да, все так. Код вроде совсем не сложный. Можно по порядку:
Вводим число n, например, то же 4044. Теперь нужно получить все его цифры. Это делается в цикле:
1
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
|
19.09.2012, 23:09 [ТС] | 9 |
А через for или как то по другому можно сделать ? Если делать продолжение к моему коду. Просто по вашему коду я не понимаю что обозначает (n%10) и if ((n%10)==a) это не понимаю. А вот то что я написал, там я уже понимаю как, что работает, и если продолжение в том стиле буду писать, то мне так легче понять и следующую похожую задачу я уже сам смогу сделать.
Ну с вашим кодов чуть разобрался n%10 тоже немного понял шас попробую как нить сделать
0
|
19.09.2012, 23:25 | 10 |
n%10 означает остаток при делении n на 10. Остаток при делении 4044 на 10 = 4. При делении, например, 78 на 10 остаток = 8 и т.д.
И в Вашем коде перемножаются не цифры числа, а числа от 1 до n. Вам это нужно?
0
|
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
|
19.09.2012, 23:36 | 12 |
freshness, четных цифр числа n, а не чисел до n. Цифры - это от 0 до 9. Например, вводим n=4044 и перебираем его цифры, т.е. 4,0,4 и 4. Перебор идет в цикле. А потом уже смотрим, сколько у него цифр соответствуют введенной цифре A.
1
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
|
19.09.2012, 23:57 [ТС] | 13 |
Спасибо, что помогли даже задание правильно понять. Мда. Ладно сейчас буду все переделывать.
Добавлено через 16 минут Мда, а код все равно не клеется.
0
|
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
|
21.09.2012, 16:04 | 16 |
При каком числе результат неверный?
n%10 - это остаток от деления (операция % все равно что mod в паскале (если изучали)) 4044%10 = 4, 4044%100 = 44 и т.д. Но нам не нужен остаток более 1 цифры, поэтому мы в конце цикла отсекаем последнюю цифру, чтобы взять следующую.
1
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
|
21.09.2012, 22:13 [ТС] | 17 |
Использовал ваш первичный код, только немного исправил, единственное произведение надо вывести ,как я понял это переменная prod у вас, и в консоли всегда 0 стоит произведение
0
|
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 30
|
||||||
21.09.2012, 22:22 [ТС] | 19 | |||||
Не я для удобства себе сделал не prod а m. int a,n,x=0,m=1; все верно. Ваш основной код я понял что к чему, это очень хорошо, но вот не понимаю почему произведение не выдает. Вот мой код:
0
|
21.09.2012, 22:38 | 20 |
freshness, вот уж не знаю. У меня работает. Да и это у Вас не c++, больше на c# похоже Отладкой пользоваться умеете? Можно посмотреть какие значения принимает m при каждой итерации в цикле. Сам бы проверил, да c# под рукой нет.
1
|
21.09.2012, 22:38 | |
21.09.2012, 22:38 | |
Помогаю со студенческими работами здесь
20
Дано натуральное число. Верно ли, что в данном числе цифра А встречается более двух раз? Дано натуральное число. Верно ли, что в данном числе цифра А встречается более двух раз? Найти первую цифру числа и проверить, верно ли, что сумма цифр числа равна X Дано натуральное число n. Верно ли, что сумма цифр этого числа является нечётной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |