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

Задача "Натуральный ряд чисел" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шаблоны http://www.cyberforum.ru/cpp-beginners/thread929196.html
Есть два класса: #include <iostream> #include <string> #include <valarray> using namespace std; template <class T1, class T2> class Pair { private: T1 a;
C++ Вывод строки в обратном порядке Тупень возвращается. Имеем функцию для чтения массива в обратном порядке. Смысл ясен, но требуются пояснения в деталях. void print_reverse(char *s) { size_t len = strlen(s); char *t=s + len - 1; // почему мы в правой части выражения к массиву s добавляем уменьшенную на единицу длину //// массива s ? почему мы складываем массив с числом ? while (t >= s) { printf("%c", *t); http://www.cyberforum.ru/cpp-beginners/thread929181.html
C++ Задача "Сокобан"
Ограничение времени: 5.0 секунды Ограничение памяти: 64 МБ Программист Стас на время отпуска устроился поработать в японскую компьютерную фирму Thinking Rabbit. Сначала идея казалась замечательной — и на халяву съездить за границу, и заработать, и набраться опыта у японских коллег. Но оказалось, что программисты без знания японского фирме не нужны, и Стаса отправили работать кем-то вроде...
Программа из книги, в которой осуществляется вызов двух функций не работает C++
Может кто поможет, не работает программа с книги "Моя первая программа на С/С++" А.Нейбауэр (Листинг 7.1. Программа, в которой осуществляется вызов двух функций.) Я уже понял что книжку для начала я выбрал слишком древнюю, ошибок в ней тоже не мало, но распечатал, дочитать надо, та и с нуля в ней не плохо все разжёвано, даже местами слишком. Программа ругается на функцию question() если добавлять...
C++ Запись/чтение структур (файлы) + разница между FILE * и <fstream> http://www.cyberforum.ru/cpp-beginners/thread929077.html
Всем привет. Порыскал по форуму, погуглил... Решения есть, но они не ясны (что, почему да как) и не все работают. Однако, я так и не нашёл конкретных и ясных объяснений по-этому поводу. И т.к. в С++ я пока конкретный чайник (и видать ещё надолго), буду очень признателен если кто-либо сможет объяснить Коболисту всю эту канитель на пальцах... И так, к делу! Первое, что я так и не понял: возможно...
C++ Список С++ Доброго времени суток всем. Возник вопрос, как его решить не знаю. Те кто знаком c python знают, что там есть такая штука как "list". В нем можно хранить объекты любых типов. Вставл вопрос, а как такое на С++ реализуется а еще лучше, возможно ли? template<typename T> class List { private: T data; List<T>* next; public: //и дальше по тексту } подробнее

Показать сообщение отдельно
Catstail
Модератор
 Аватар для Catstail
21500 / 10253 / 1669
Регистрация: 12.02.2012
Сообщений: 17,139
28.07.2013, 17:11     Задача "Натуральный ряд чисел"
Вот решение без строк, без доп. функций и т.п. - "ручками":

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream.h>
 
int SCurr=1,Pos=1;
int Arr[10],Ptr=0;
int Counter=0;
 
int NextDigit()
{
    int i,r,c;
    Pos++;
    Counter++;
    if (Ptr == 0)
    {
        c=SCurr++;
        for (i=1; i<=10; i++) Arr[i]=0;
        for (i=1; i<=10; i++)
        {
            r=c % 10;
            Arr[Ptr++]=r;
            c=c / 10;
            if (c == 0) break;
        }
    }
    return Arr[--Ptr];
}
 
int main(int argc, char* argv[])
{
 
    int i,j,p,N,c,r,q;
    int digs[4],cadr[4];
        
    cout << "Enter number: ";
    cin >> N;
 
    c=N;
    p=0;
 
    for (i=1; i<=4; i++)
    {
        if (c==0) break;
        r=c % 10;
        digs[p++]=r;
        c=c / 10;
    }
 
    for (i=0; i<p; i++)
        cadr[i]=NextDigit();
 
    while (Counter <= 2147483647)
    {
        q=0;
        for (j=0; j<p; j++)
            if (digs[p-j-1] != cadr[j])
            {
                q=-1;
                break;
            }
        if (q == 0)
        {
            cout << "Pos=" << (Pos-p) << endl;
            break;
        }
        else
        {
            for (j=0; j<p-1; j++) cadr[j]=cadr[j+1];
            cadr[p-1]=NextDigit();
        }
    }
    return 0;
}
 
Текущее время: 00:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru