0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 28
1

Перечислить все натуральные числа, не превосходящие заданного N

26.12.2014, 13:20. Показов 1277. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Перечислить все натуральные числа, не превосходящие заданного N, в двоичном представлении которых номера ненулевых разрядов образуют арифметическую прогрессию.
Начало я сделал, но как сделать арифметическую прогрессию ненулевых разрядов в двоичном коде, не могу понять.
Уже дня 2 туплю, буду рад хоть какой нибудь помощи.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 var
 
 n,i,rd,dc:integer;
  a:longint;
 
begin
write('Vvedite naturalnoe chislo ');
readln(n);
for i:=1 to n do begin
rd:=i;
a:=1;
dc:=0;
while rd>0 do begin
dc:=dc+((rd mod 2)*a);
rd:=rd div 2;
a:=a*10;
end;
writeln(i,'=',dc);
end;
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2014, 13:20
Ответы с готовыми решениями:

Найти все натуральные числа, не превосходящие заданного m
Пожалуйста, очень срочно надо написать программу на языке Pascal (Turbo или ABC). Найти все...

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

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
5. Найти все натуральные числа, не превосходящие заданного n, которые делят-ся на каждую из своих...

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

1
204 / 141 / 57
Регистрация: 25.12.2014
Сообщений: 446
26.12.2014, 22:17 2
Решается вот по такой схеме
Pascal
1
2
3
4
for i:=1 to n do begin
if разряды в числе i образуют арифм.прогрессию then
   writeln(i);
end;
Осталось только каким-то образом разобраться с "разряды в числе i образуют арифм.прогрессию". Например, функцию использовать
Pascal
1
2
3
4
for i:=1 to n do begin
if arifm(i) then
   writeln(i);
end;
Осталось эту функцию написать.
Pascal
1
2
3
4
5
6
function arifm(a:longint):boolean;
begin
каким-то образом выяснить образуют ли разряды числа a
арифметическую прогрессию.
если образуют, то  arifm:=true; иначе arifm:=false;
end;
Добавлено через 50 минут
И вот она, эта самая функция!
Pascal
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
function arifm(a:longint):boolean;
var k,p,d:integer;
begin
 k:=0; {номер очередного разряда}
 p:=0; {номер предыдущего разряда}
 d:=0; {разность арифм.прогрессии}
 arifm:=true;
 while a<>0 do begin
  if odd(a) then begin
  {очередной разряд единичный}
   If (d>0)and (p+d <>k) then begin
   {нарушение - единичный разряд не через d }
           a:=0;
           arifm:=false;
   end else begin
         if (d=0) and (k<>p) then d:=k-p;
         p:=k;
   end
  end
  else {очередной разряд нулевой}
      if (d>0) and (p+d=k) then begin
      {нарушение - нулевой разряд через d }
          a:=0;
          arifm:=false;
      end;
  a:=a div 2;
  inc(k);
 end;
{единственный единичный разряд тоже считаем арифм.прогрессией}
{если это неверно, то следующую строчку раскомментировать}
{if d=0 then arifm:=false;}
end;
0
26.12.2014, 22:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2014, 22:17
Помогаю со студенческими работами здесь

Определить все натуральные числа m, не превосходящие числа N. Сумма всех цифр числа m-простое число.
Уславие Определить все натуральные числа m, не превосходящие числа N. Сумма всех цифр числа...

Найти все натуральные числа,не превосходящие n и делящиеся на каждую из своих цифр
Найти все натуральные числа,не превосходящие n и делящиеся на каждую из своих цифр(в десятичной...

Найти все числа, не превосходящие заданного N (10<N<10000), которые делятся на все свои цифры.
как решить следующую задачу? Задача Д1. Найти все числа, не превосходящие заданного N...

Найдите все натуральные числа, не превосходящие заданного значения n, которые делятся
Что не так с моим кодом к заданию: program Z1; var a, i, n: integer; t: boolean; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru