| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] задачка |
| Автор: Evghenusi 18.12.2008, 22:08 |
| добрый вечер! не могли бы вы мне помочь с задачкой, а то не знаю как её решить: Введите целое m, 10 < m < 1000. Найдите последнюю цифру суммы 1(1) + 2(2) + 3(3) + … + m(m). в скобочках степень |
| Автор: MastEdm 18.12.2008, 22:35 |
| Почитай про модульную арифметику |
| Автор: Evghenusi 19.12.2008, 00:43 |
| спасибо за ответ, только знать бы как ним воспользоваться |
| Автор: Dmi3ev 19.12.2008, 05:25 | ||||||||
| я бы не согласился, я бы сказал, что скорее надо вспомнить умножение в столбик)))) и заметить некоторые закономерности))) ну а прога, которая решает данную проблему выглядит примерно так:
Вроде все верно, я проверял, у меня получалось))) логика такова, что нам важны только единицы числа, именно за ними мы и ведем наблюдение, а остальное все по барабану))) короче, должна работать))) Добавлено @ 05:30
можно тогда еще условие прилепить после ввода m))) тогда вот так:
так как-то... Добавлено @ 05:32 и добавить вывод последней цифры на каждой итерации))) Добавлено @ 05:32 вообщем вот тебе альфа-версия и бетта-вресия Добавлено @ 05:37 можно еще в цикле в функции добавить
наверное так можно, потому что 100(100) будет давать 0 на конце всегда, так лучше сразу закончить эту мутотень, чем через 99 раз... я думаю, что это даже правильно будет... хотя не проверял и не замудрялся над этим... так что это только догадка... |
| Автор: J0ker 19.12.2008, 06:36 |
| хах забавно никогда не видел этой задачи прежде даю маячек: 0 1 2, 4, 8, 6 3, 9, 7, 1 4, 6 5 6 7, 9, 3, 1 8, 4, 2, 6 9, 1 |
| Автор: J0ker 19.12.2008, 07:27 | ||
| неудержался, запрогал сорри если кому сломал кайф
ЗЫЖ тут сумма последних цифр выводится - в задаче нужно последнюю цифру суммы - тогда cout << sum%10 << endl; или на этапе подсчета sum += arrp[i%10][(i-1) % sz[i%10]]; sum %= 10; |
| Автор: Dmi3ev 19.12.2008, 07:48 | ||||
J0ker,
применительно к данной задаче если 9^9=...9, если 9*.9=...9, короче только девять на конце... int arr9[] = 9; для этой задачи... для 2: 4 и 6... |
| Автор: J0ker 19.12.2008, 07:56 |
| Dmi3ev, не, ну понятно, что x9-1 - всегда четно, а остаток четного деленного на 2 всегда 0, и 0 деленное на любое число все равно ноль но это просто наблюдение надо-же, что-бы было КРАСИВО |
| Автор: Dmi3ev 19.12.2008, 08:00 | ||||
))) Ну тогда не спорю... Добавлено через 6 минут и 21 секунду А еще ты заметил такую закономерность: 1: 1,4,7,6,5,6,3,6,9,0 2: 1,6,3,6,5,6,7,4,9,0 3: 1,4,7,6,5,6,3,6,9,0 я про че ваще, 1, 9, 0 остаются на своих местах а остальные зеркально отражаются (ну короче ты понял)... так что таким макаром можно ваще прогу укоротить, проверяя делится ли десяток на 2, если да, то певая хня, если нет , то вторая, причем ЧТОБЫ КРАСИВО БЫЛО С ЗЕРКАЛЬНОСТЬ ЧТО-НИБУДЬ ПОДУМАТЬ ИЛИ Я ТУПЛЮ??? КАК ДУМАЕШЬ??? Добавлено через 10 минут и 37 секунд
и не только они, ну ты понял, просто задолбаешь опять определениями))) и придирками))) Добавлено через 11 минут и 1 секунду как тогда, с точками))) |
| Автор: Evghenusi 19.12.2008, 08:20 |
| огромное спасибо, не сочтите за наглость, а нельзя ли код(listing) на "С" без плюсов |
| Автор: Dmi3ev 19.12.2008, 08:23 |
| а в первом коде, чем тебе не с (сout, cin)? а во втором... тоже самое...? это наглость...))) |
| Автор: Evghenusi 19.12.2008, 08:34 |
| да просто я только учу язык "Си", и мне пока не известны: cout, endl, cin да и библиотека мне не известна #include <iostream> |
| Автор: Dmi3ev 19.12.2008, 09:08 | ||
переделал свое, хоя у J0ker-а вариант более хороший, я хотел тебе написать про эту логику, но... короче вот так:
можно так, как-то я тут делал, так что ... |
| Автор: Evghenusi 19.12.2008, 13:55 |
| благодарю |
| Автор: Earnest 19.12.2008, 17:20 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: Rodman 19.12.2008, 17:28 | ||
|
| Автор: J0ker 19.12.2008, 18:33 |
| Dmi3ev, я думаю что куда-уж короче - все в статических массивах, сложность вычисления линейная, решение универсальное - никаких условий вообще таблица подходит для определения последней цифры любого числа >=0 в любой степени >=0 |