Перейти к содержимому

Фотография

НАЧИНАЮЩИЙ ПРОГРАММИСТВ помощь начинающему программисту....


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 447

#141
xn80akxm

xn80akxm
  • Частый гость
  • 91 сообщений

А в нашей компании тех.задания, спецификация итп пишется после разработки самого проекта. А пишется он на словах, хотя проекты гос. и очень дорогостоящие, мол быстро нужно начинать нет времени, а тех.задание потом слепим.

Вы употребили слово проект = )))
А проект имеет следующий жизненный цикл.
- Определение (ТЗ, спецификации)
- Планирование
- Выполнение(Кодинг)
- Завершение

Может у вас не проекты? = )))
  • 0

#142
smug

smug
  • Свой человек
  • 513 сообщений
у них реалии it бизнеса в казахстане))
xn80akxm все ли у вас по бумаге?
  • 0

#143
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
2 xn80akxm

Среди разработчиков проектом у нас принято называть программное обеспечение, например "зафиксируй проект", "модуль проекта" и т.п. И нам не важно какой жизненный цикл имеет слово проект.
  • 0

#144
Noise

Noise
  • Завсегдатай
  • 186 сообщений
При создании магазина 24x7 на этапе разработки, база данных была создана с дефектом который был обнаружен только после запуска.
Исправить дефект стоило больше чем написать всё заново и запустить с нуля.
Мораль:
Нарисовать на бумаге всегда проще чем программить.
  • 0

#145
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений

Решить нужно математически, без переворачивания строк


Предполагаю, что нужно:
Получить количество разрядов у натурального числа, в дельфи "Len := trunc(Log10(Num))+1"
Кол-во палиндромов для разрядов "9,18,108,198,1098,1998,10998 итп"
Пробежаться в цикле от 1 до Len, и переберать палиндромы по формулам "a+10a, a+10a+100a итп"
  • 0

#146
smug

smug
  • Свой человек
  • 513 сообщений
11 это полиндром?
  • 0

#147
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений

11 это полиндром?


11, 111, 121 и т.п. палиндромы
  • 0

#148
yedyge

yedyge
  • Свой человек
  • 879 сообщений

Предлагаю интересную задачку:


Васе нужно написать функцию, которая возвращает количество числовых палиндромов от 1 до заданного натурального числа включительно. Число называется палиндромом, если его десятичная запись читается одинаково слева направо и справа налево, например, 53235.

Как Васе сделать это наиболее эффективно?

ПС: Решение можете писать на любом языке

ты не вася? :laugh:

имеется 10 одно- и двухзначных палиндромов, 10*10 трёх- и четырёхзначных, 10*10*10 пяти- и шестизначных и так далее. тонкость в том как среди пятизначных посчитать точное число палиндромов ниже 53235.

но в данном случае я думаю пятизначных будет 5*3*2.

тсчательнее нужно пересчитать, если запрещены если 0, 00, 000, 010.

Сообщение отредактировал yedyge: 28.10.2009, 20:54:40

  • 0

#149
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Васе нужно написать функцию, которая возвращает количество числовых палиндромов от 1 до заданного натурального числа включительно. Число называется палиндромом, если его десятичная запись читается одинаково слева направо и справа налево, например, 53235.

То есть, по условию задачи все натуральные однозначные числа (1, 2, 3, ..., 9) считаются тоже палиндромами. Если нет, то просто уменьшаем количество найденных палиндромов на 9.

имеется 10 одно- и двухзначных палиндромов, 10*10 трёх- и четырёхзначных

И как же у вас получилось такое количество? :rotate:
  • 0

#150
yedyge

yedyge
  • Свой человек
  • 879 сообщений
однозначные - все палиндромы. их 10.

двузначные... только если они зеркально образуются от однозначных чисел. однозначных чисел 10, и приписать к однозначному можно вторую цифру только однозначно.

хитрее с трёхзначными. у нас 10 двузначных палиндромов, и в его центр можно подставить либо однозначный палиндром (их 10, поэтому число двузначных умножается на 10), либо двузначный палиндром (их тоже 10, поэтому опять же число двузначных умножается на 10): итого трёхзначных 10*10, четырёхзначных тоже 10*10.

внутрь четырёхзначного сами дальше сможете вставить однозначные и двузначные палиндромы?
  • 0

#151
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

однозначные - все палиндромы. их 10.

Не 10, а 9 (по условию задачи, натуральными являются целые числа, начиная с 1. Число 0 не является натуральным числом).

двузначные... только если они зеркально образуются от однозначных чисел. однозначных чисел 10, и приписать к однозначному можно вторую цифру только однозначно.

Тоже 9.

хитрее с трёхзначными. у нас 10 двузначных палиндромов, и в его центр можно подставить либо однозначный палиндром (их 10, поэтому число двузначных умножается на 10), либо двузначный палиндром (их тоже 10, поэтому опять же число двузначных умножается на 10): итого трёхзначных 10*10, четырёхзначных тоже 10*10.

Трехзначных 10*9 = 90. Здесь уже надо учитывать 0, потому что палиндромами являются также числа вида x0x (где x = 1, 2, ..., 9)

внутрь четырёхзначного сами дальше сможете вставить однозначные и двузначные палиндромы?

Если учитывать 0 для трехзначных, и не учитывать для 1- и 2-значных, то 4-значных палиндромов тоже получается 90.
  • 0

#152
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
>Если учитывать 0 для трехзначных, и не учитывать для 1- и >2-значных, то 4-значных палиндромов тоже получается 90.

Да, верно

Для пятизначных уже: 9 * 10 * 10
  • 0

#153
smug

smug
  • Свой человек
  • 513 сообщений
их кол-во меняеться через каждые 2 разряда

Сообщение отредактировал smug: 29.10.2009, 11:47:29

  • 0

#154
yedyge

yedyge
  • Свой человек
  • 879 сообщений

Не 10, а 9 (по условию задачи, натуральными являются целые числа, начиная с 1. Число 0 не является натуральным числом).
<...>

очень ценные замечания. у меня всегда по краям циклов трудности на единицу.

но я рассуждаю о палиндромах вообще и сделал специальную пометку

тсчательнее нужно пересчитать, если запрещены если 0, 00, 000, 010.


если васе нужна программа и он умный - он поймёт как делать.
если тупой, то пусть программирование сдаёт как-о иначе.
  • 0

#155
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений


Не 10, а 9 (по условию задачи, натуральными являются целые числа, начиная с 1. Число 0 не является натуральным числом).

очень ценные замечания. у меня всегда по краям циклов трудности на единицу.

В данном случае это не цикл, а вопрос о том, является ли 0 натуральным числом.

если васе нужна программа и он умный - он поймёт как делать.
если тупой, то пусть программирование сдаёт как-о иначе.

Это не какого-то "Васю" проверяют, тупой он или умный. Это нас (кто на этом форуме) проверяют, какие из нас программисты.
  • 0

#156
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
0 - это палиндром.

PS: для любого четного числа разрядов, количество палиндромов равно количеству палиндромов для предыдущего нечетного

Сообщение отредактировал Big Joe: 29.10.2009, 13:37:32

  • 0

#157
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

0 - это палиндром.

Можно и так считать. Но по условию, 0 не включается. По условию нужно "написать функцию, которая возвращает количество числовых палиндромов от 1 до заданного натурального числа включительно".

Главное здесь, что от программистов ждут программу, которая это делает.
  • 0

#158
yedyge

yedyge
  • Свой человек
  • 879 сообщений
нетушки. программу я делать не буду.
вася предыдущее решение не принял, заменив требование на предоставление математического обоснования.
я обосновал общее решение (включая 0, 00, 010) имхо достаточно математически.
  • 0

#159
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

нетушки. программу я делать не буду.

Программисты здесь есть? Ау! :-)

я обосновал общее решение (включая 0, 00, 010) имхо достаточно математически.

Ваше "общее решение", увы, оказалось неправильным. Да его для разработки программы вообще-то и не требуется.

Здесь требуется не "математическое обоснование общего решения", а несложная программка (как было указано, можно на любом языке программирования), которая просто перебирает все натуральные числа, начиная от 1 и до определенного N, заданного пользователем. И если очередное число - палиндром, то программка просто увеличивает свой счетчик на единицу. По достижении значения N выводит значение счетчика пользователю. Все!
  • 0

#160
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Delphi:

uses math;

function PCount(Num : Int64): Int64;
var
i,len,a,b, col : Integer;
begin
a := 1;
b := 1;
col := 0;
len := Trunc(Log10(Num))+1;
for i := 1 to len - 1 do
begin
col := col + a * 9;
if (i mod 2) = 0 then
a := a * 10
else
b := b * 10;
end;
result := col + (Num div a) - b + 1;
end;
  • 0


Количество пользователей, читающих эту тему: 0

пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.