Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
1

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

29.11.2011, 10:01. Просмотров 2862. Ответов 16
Метки нет (Все метки)

Дано натуральное k. Напечатать k-ю цифру последовательности
24681012141618202224262830..., в которой выписаны подряд все натуральные четные
числа.
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <cmath>
#include <iomanip>
#include <locale>
using namespace std;
 
int main(int)
{
    setlocale(0,"rus");
    int k, l, q=0, p; int n;
    do {
    cout<<"Введите номер цифры К "; cin>>k;
    }
    while (k<=0);
    bool flag=false;
    do{
        n+=2;
        p=n;
        l=0;
        while(p!=0)
        {
            p/=10;
            l++;
        };
        q+=l;
        cout<<n;
        if (q>=k) {
            flag=true;
            int s=q-k;
            int m=pow(10,s);//здесь выбивает ошибку!!! 
            int c=n/m;
            c%=10;
            cout<<"\n"<<c<<"\n";
        };
    }while (flag==true);
    _getch();
    return 0;
}
error C2668: 'pow' : ambiguous call to overloaded function. Помогите исправить!!!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 10:01
Ответы с готовыми решениями:

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

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

Задано натуральное число k. Напечатать k-ту цифру последовательности чисел
Прошу, помогите написать програму на с++ Вот условия задачи: Задано натуральное число k....

Задано натуральное число k. Напечатать k-ю цифру последовательности цифр:
Прошу вас снова мудрые люди, помогите написать программу на языке с++ По условиям:

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

16
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 10:05 2
Ambiguous call to overloaded function

Насколько я понимаю pow() принимает double-параметры. И если ты даешь ему int то он конвертирует их в double. Следовательно и число выйдет не int. Попробуй поменять тип объекта m.
1
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 13:55  [ТС] 3
Спасибо, как-то не подумал про это!!! Сейчас попробую!!!
0
Диман56
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
29.11.2011, 14:03 4
Вы не подумали про то, что к-ая цифра-это к*2?
Тогда код упростится до безобразия:
C
1
2
3
4
5
6
7
8
9
10
#include "StdAfx.h"
#include <stdio.h>
#include <conio.h>
void main()
{
int k;
scanf("%d", &k);
printf("k-a9 I_I,uqppa=%d", k*2);
_getch();
}
Код для студии.
1
29.11.2011, 14:03
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 14:04  [ТС] 5
в Double никак, иначе не получается С%=10;
но можно "с" оставить как int, тогда прога зацикливается!!!
0
Диман56
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
29.11.2011, 14:06 6
Моё сообщение выше прочитайте!))
0
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 14:08  [ТС] 7
но, а последовательность, то вывести надо!!!
0
Диман56
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
29.11.2011, 14:09 8
так вам к-ую цифру или всю(!) последовательность? Скажите задание полностью)
0
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 14:12  [ТС] 9
Дано натуральное k. Напечатать k-ю цифру последовательности
24681012141618202224262830..., в которой выписаны подряд все натуральные четные
числа.
Вот все задание.
0
Диман56
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
29.11.2011, 14:14 10
Про что я и говорил. Вам нужна к-ая цифра...хм....так цифра или число?
0
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 14:20  [ТС] 11
Первым делом - цифра!!!(спасибо вам за код )
А вторым - последовательность 2, 4, 6, 8, 10, 12, 14, 15.... и т.д.
И при вводе например 4, чтобы выводило:
к-ая цифра = 4
//и саму полученную последовательность
2, 4, 6, 8
0
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 17:20 12
Число ему надо, видно по заданию.
0
Диман56
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
29.11.2011, 17:53 13
ну дак если именно число!!!!!(а число и цифра-не одно и тоже, поверьте, я ученик 10 класса, эту тему проходим), то мой код вполне подходит)
0
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 18:55  [ТС] 14
Спс всем за помощь.
0
soon
2550 / 1315 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.11.2011, 20:44 15

Не по теме:

Цитата Сообщение от Диман56 Посмотреть сообщение
а число и цифра-не одно и тоже, поверьте, я ученик 10 класса, эту тему проходим
И смешно, и грустно...


itoa + reverce выдернул с википедии.
Программа выводит строку и цифру.
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
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <string.h>
 
void reverse(char s[])
{
    int i, j;
    char c;
 
    for (i = 0, j = strlen(s)-1; i<j; i++, j--) 
    {
        c = s[i];
        s[i] = s[j];
        s[j] = c;
    }
}
 
void itoa(int n, char s[])
{
    int i, sign;
 
    if ((sign = n) < 0)  
        n = -n;          
    i = 0;
    do 
        s[i++] = n % 10 + '0';   
    while ((n /= 10) > 0);     
    if (sign < 0)
        s[i++] = '-';
    s[i] = '\0';
    reverse(s);
}
 
int main(void)
{
    char buf[16];
    int n, i = 0, j = 0, k;
    scanf("%d", &n);
    while(i < n)
    {
        j += 2;
        itoa(j, buf);
        i += strlen(buf);
        if(i > n)
        {
            i = n + strlen(buf) - i;
            for(k = 0; k < i; ++k)
                printf("%c", buf[k]);
            break;
        }
        printf("%s", buf);
    }
    printf("\nsymbol # %d - %c\n", n, ((i < n) ? (buf[i - 1]) : (buf[strlen(buf) - 1])));
    return 0;
}
output
Код
soon@bt:~/Desktop$ ./main
93 94 95 96 97 98 99 100 101 102 103
246810121416182022242628303234363840424446485052545658606264666870727476788082848688909294969
symbol # 93 - 9
2468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698
symbol # 94 - 8
24681012141618202224262830323436384042444648505254565860626466687072747678808284868890929496981
symbol # 95 - 1
246810121416182022242628303234363840424446485052545658606264666870727476788082848688909294969810
symbol # 96 - 0
2468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698100
symbol # 97 - 0
24681012141618202224262830323436384042444648505254565860626466687072747678808284868890929496981001
symbol # 98 - 1
246810121416182022242628303234363840424446485052545658606264666870727476788082848688909294969810010
symbol # 99 - 0
2468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698100102
symbol # 100 - 2
24681012141618202224262830323436384042444648505254565860626466687072747678808284868890929496981001021
symbol # 101 - 1
246810121416182022242628303234363840424446485052545658606264666870727476788082848688909294969810010210
symbol # 102 - 0
2468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698100102104
symbol # 103 - 4
1
SEV7
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 34
29.11.2011, 21:37  [ТС] 16
Спасибо SOON за помощь, это то, что нужно, только замудрено немного!!!
0
soon
2550 / 1315 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.11.2011, 21:40 17
Можно без реализации itoa, если она присутствует в stdlib.h. Проверьте, подключите stdlib.h и уберите функции itoa и reverce. Если заработает как надо, то можете так и оставить, нет - честно скажете, что утянули их из Википедии. Свободная энциклопедия, же
1
29.11.2011, 21:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 21:40

Дано натуральное число k. Вывести на экран k-ю цифру последовательности, где выписаны подряд степени
Дано натуральное число k. Вывести на экран k-ю цифру последовательности, где выписаны подряд...

Дано натуральное число n, определить его первую цифру
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); int n;...

Дано натуральное число n, найти первую цифру числа n
Дано натуральное число n (n ≤ 100), найти первую цифру числа n. На паскале пожалуйста срочно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.