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

Позиции - C++

Восстановить пароль Регистрация
 
Dz111
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 85
18.05.2011, 23:18     Позиции #1
Найти все натуральные числа не превосходящие n десятичная запись которых есть строго возрастающая или строго убывающая последовательность .

Скажите мне пожалуйста как разбивать пробую с остатком ну чет не идет к меня .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 23:18     Позиции
Посмотрите здесь:

C++ Определение позиции курсора
C++ C, Вычислить сумму ряда с позиции M до позиции N.
C++ Строки, позиции
Позиции C++
Определить позиции SelStart'a C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
skaa
Хочу в Исландию
 Аватар для skaa
1024 / 823 / 75
Регистрация: 10.11.2010
Сообщений: 1,626
18.05.2011, 23:47     Позиции #2
C++
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
33
34
35
36
37
38
39
40
41
#include    <stdio.h>
void    main()
{
  int   n=9865;
  int   nm;
  int   jn;
  int   ndigp,ndign=-1;
  int   iinc,idec;
 
  for(jn=1;jn<=n;jn++)
  {
    for(nm=jn,iinc=1;nm>0;nm/=10)
    {
      ndigp=nm%10;
      if(nm!=jn)
      {
        if(ndigp>=ndign)
        {
          iinc=0;
          break;
        }
      }
      ndign=ndigp;
    }
    for(nm=jn,idec=1;nm>0;nm/=10)
    {
      ndigp=nm%10;
      if(nm!=jn)
      {
        if(ndigp<=ndign)
        {
          idec=0;
          break;
        }
      }
      ndign=ndigp;
    }
    if(iinc||idec)
      printf("%d\n",jn);
  }
}
Dz111
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 85
19.05.2011, 00:01  [ТС]     Позиции #3
Цитата Сообщение от skaa Посмотреть сообщение
C++
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
33
34
35
36
37
38
39
40
41
#include    <stdio.h>
void    main()
{
  int   n=9865;
  int   nm;
  int   jn;
  int   ndigp,ndign=-1;
  int   iinc,idec;
 
  for(jn=1;jn<=n;jn++)
  {
    for(nm=jn,iinc=1;nm>0;nm/=10)
    {
      ndigp=nm%10;
      if(nm!=jn)
      {
        if(ndigp>=ndign)
        {
          iinc=0;
          break;
        }
      }
      ndign=ndigp;
    }
    for(nm=jn,idec=1;nm>0;nm/=10)
    {
      ndigp=nm%10;
      if(nm!=jn)
      {
        if(ndigp<=ndign)
        {
          idec=0;
          break;
        }
      }
      ndign=ndigp;
    }
    if(iinc||idec)
      printf("%d\n",jn);
  }
}
Прога и не возрастающие выводит так пример (

Добавлено через 2 минуты
Вот посмотрите (число 10 не строго возрастающая 1>0 ) :
vvediet n=25
1
2
3
4
5
6
7
8
9
10
12
13
14
15
16
17
18
19
20
21
23
24
25
skaa
Хочу в Исландию
 Аватар для skaa
1024 / 823 / 75
Регистрация: 10.11.2010
Сообщений: 1,626
19.05.2011, 00:41     Позиции #4
Но ведь в задании написано:
запись которых есть строго возрастающая или строго убывающая последовательность
, вот и выводится всё кроме мешанины типа 8796.
Dz111
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 85
19.05.2011, 05:00  [ТС]     Позиции #5
Цитата Сообщение от skaa Посмотреть сообщение
Но ведь в задании написано:
запись которых есть строго возрастающая или строго убывающая последовательность
, вот и выводится всё кроме мешанины типа 8796.
Извините ! строго убывающая не нужна ! но чтоб изменить это нужно только в условие знак развернуть ! Спасибо !
Yandex
Объявления
19.05.2011, 05:00     Позиции
Ответ Создать тему
Опции темы

Текущее время: 20:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru