Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 6
1

Найти K-тую цифру последовательности 123456789101112131415...999

26.11.2017, 15:44. Показов 3265. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! нужно написать программу на С чтобы найти K-тую цифру последовательности 123456789101112131415....999 без использования массивов, при помощи цикла. последовательность должна быть записана в программе,только k вводим с екрана(k<2889)
Спасибо заранее)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2017, 15:44
Ответы с готовыми решениями:

Определить n-тую цифру в последовательности: 112123123411212312341121231234…
Определить n-тую цифру в последовательности: 112123123411212312341121231234…

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

Найти количество таких элементов последовательности, которые имеют в своем составе цифру 5
Пусть имеется последовательность произвольных целых ненулевых чисел, завершающаяся числом 0 (число...

Определить k-ю цифру последовательности
Определить k-ю цифру последовательности 14916253649..., в которой выписаны подряд квадраты...

10
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,222
26.11.2017, 16:09 2
Для начала напишите цикл, котрый будет генерировать последовательность, как только напишете, сразу же обнаружится, что достаточно изменить i<max на i<k и ваша программа готова.
0
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 6
26.11.2017, 16:27  [ТС] 3
stake-k26, но такая программа выводит последовательность до k-го числа, а мне нужно чтобы k-тую цифу)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
 
void main(void)
{
    system("chcp 1251");
    int k, i = 0;
    printf("\n Вводите k: ");
    scanf_s("%d", &k);
    do {
        printf("%d", ++i);
    } while (i < k);
    getchar(), getchar() ;
}
0
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
26.11.2017, 16:47 4
Цитата Сообщение от marta5673 Посмотреть сообщение
последовательность должна быть записана в программе,
Цитата Сообщение от stake-k26 Посмотреть сообщение
будет генерировать последовательность
А не вводить с клавиатуры.
0
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,222
26.11.2017, 16:54 5
marta5673, вы похоже не поняли, при i>9 ваша программа должна разбивать число на составляющие числа, т.е. из числа 12 делать два числа 1 и 2, из числа 101 делать три: 1, 0 и 1 ... и так далее.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
26.11.2017, 17:21 6
Имхо, достаточно заметить, что первые 9 чисел используют по 1 цифре, следующие 90 (10-99) по 2, следующие 900(100-999) по 3...
Попытаться уловить общую закономерность... А потом еще немножко подумать...
Иногда полезно попробовать решить такие задачи вручную для небольших значений k, скажем k=15, k=16, k=17 ....
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,884
26.11.2017, 18:18 7
Для кого поиск по форуму придумали?..
Напечатать k-ю цифру последовательности, в которой выписаны подряд все натуральные числа
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
27.11.2017, 10:55 8
Напечатать k-ую цифру последовательности, в которой выписаны подряд все натуральные числа
Там есть ерунда, но есть и приличный код
0
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,222
27.11.2017, 13:36 9
Лучший ответ Сообщение было отмечено marta5673 как решение

Решение

Вариант, конечно, топорный, но по идее сойдет за творение новичка.
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
42
#include <stdio.h>
 
int main (void)
{
    int a, b, c, m = -1;
    int i, z;
    int k;
 
    do {                        // получаем k от пользователя
        printf("k = ");
        scanf("%d", &k);
    } while (k<1 || k>2889);
 
    i = z = 1;
    while (i <= 999)        // считаем цифру
    {
        if ( i < 10)
        {
            if (z++ == k) { m = i; break; }
        }
        else if (i<100)
        {
            a = i%10;
            b = i/10;
            if (z++ == k) { m = b; break; }
            if (z++ == k) { m = a; break; }
        }
        else
        {
            a = i%10;
            b = (i/10)%10;
            c = (i/100)%10;
            if (z++ == k) { m = c; break; }
            if (z++ == k) { m = b; break; }
            if (z++ == k) { m = a; break; }
        }
        i++;
    }
 
    printf("m = %d\n", m);      // результат на экран
    return 0;
}
2
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,884
27.11.2017, 16:52 10
Сложность О(N) однако, вместо О(1). Впрочем, раз N<1000, не так уж и страшно
0
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 6
27.11.2017, 23:16  [ТС] 11
stake-k26, спасибо большое!!! очень помогли))
0
27.11.2017, 23:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2017, 23:16
Помогаю со студенческими работами здесь

Напечатать k-ю цифру последовательности
Дано натуральное k. Напечатать k-ю цифру последовательности 1123581321..., в которой выписаны...

Определить К-ю цифру в последовательности
Всем доброго времени суток!Имеется следующее Даны целое число k (от 1 до 252) и последовательность...

Вывести K-тую цифру последовательности из цифр натуральных чисел
#include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; void main() { int k, i, n=0;...

Дано натуральное число k. Определить k-тую цифру последовательности
Ребят привет. Помогите плиз. В общем вот задание: Дано натуральное число k. Определить k-тую...


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

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