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

Задача по программированию(неудачный перевод кода) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как понять строку declare http://www.cyberforum.ru/cpp-beginners/thread994676.html
SWITCH_DECLARE(const switch_state_handler_table_t *) switch_core_get_state_handler(_In_ int index); не понятно зачем в возвращаемом параметре стоит Слово const
C++ Составить и проверить функцию, которая переставляет цифры заданного целого числа N1 в обратном порядке и получает новое число N2 8. Составить и проверить функцию, которая переставляет цифры заданного целого числа N1 в обратном порядке и получает новое число N2. Например, если N1=425, то N2=524. http://www.cyberforum.ru/cpp-beginners/thread994672.html
В массиве целых чисел найти количество чисел с наименьшим количеством цифр C++
9. В массиве целых чисел найти количество чисел с наименьшим количеством цифр. Например, в массиве {123, 34, 56, 1000, 20, 55000, 777, 11} таких чисел 4, это 34, 56, 20,
C++ поскажите или напишите программу с циклом for
Предположим, что A говорит: "Или я лжец, или два плюс два - пять". К какому заключению можно прийти на основании этого утверждения?
C++ Составить, которая определяет количество цифр одного целого числа. http://www.cyberforum.ru/cpp-beginners/thread994656.html
11. Составить и использовать функцию, которая определяет количество цифр одного целого числа.
C++ Определить минимальное значение среди вычисленных значений t Вычислить значения t, соответствующие каждому значению х ( xn≤x≤xk , шаг изменения x равен dx) по формуле: t=(a+b)2√((a+x)/(sin(b+x)+1,1)) Вычислить количество отрицательных значений x. Определить минимальное значение среди вычисленных значений t. На экран выводить каждую вторую пару значений x и t. Контрольный расчёт провести при a=6.13, b=3.42, xn=-2, xk=3, dx=0.5. Вот то что я сделал: ... подробнее

Показать сообщение отдельно
ShiftDj
1 / 1 / 0
Регистрация: 02.06.2013
Сообщений: 36
01.11.2013, 23:56  [ТС]     Задача по программированию(неудачный перевод кода)
Не судите название строго просто надо было быстро скомпилировать код, вот так и назвал

Добавлено через 7 часов 26 минут
По сути, я решил... Но все равно программа проходит лишь 5 тестов из 8, уж не знаю почему...
Кликните здесь для просмотра всего текста
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <iostream>
#include <string>
using namespace std;
 
int searchchar(char a, string b)
{
    int c=0;
    for(int i=0; i<b.length(); ++i)
    {
        if (b[i]==a)
        {
            c=i;
        }
    }
    return c;
};
 
string slovo(string a, int b, int c)
{
    string d;
    for (int i=b; i<c; ++i)
    {
        d+=a[i];
    }
    return d;
};
 
int perevod1(string a)
{
    int num;
    if (((int)a[0]>=48)&&((int)a[0]<=57))
    {
        num=(int)a[0]-48;
    }
    else
    {
        num=(int)a[0]-55;
    }
    return num;
};
 
int perevod2(string str, int bas)
{
    int num_1, num_2;
    if (((int)str[0]>=48)&&((int)str[0]<=57))
    {
        num_1=(int)str[0]-48;
    }
    else
    {
        num_1=(int)str[0]-55;
    }
    if (((int)str[1]>=48)&&((int)str[1]<=57))
    {
        num_2=(int)str[1]-48;
    }
    else
    {
        num_2=(int)str[1]-55;
    }
    return num_1*bas+num_2;
};
 
int perevod3(char a)
{
    int num;
    if (((int)a>=48)&&((int)a<=57))
    {
        num=atoi(&a);
    }
    else
    {
        num=(int)a-55;
    }
    return num;
};
 
 
int main()
{
    string A, B, C, str1, str;
    char c, F;
    int a1, a2, bi, num1, num2, num3, start, maxnum;
    cin >> str1;
    a1=searchchar('+', str1);
    a2=searchchar('=', str1);
    A=slovo(str1, 0, a1);
    B=slovo(str1, a1+1, a2);
    C=slovo(str1, a2+1, str1.length());
    str=A+B+C;
    maxnum=0;
    for(int i=1; i<str.length(); ++i)
    {
        if ((str[i])>maxnum)
        {
            maxnum=(str[i]);
        }
    }
    F=maxnum;
    start=perevod3(F)+1;
    for (int i=start; i<36; ++i)
    {
        if(A.length()>1)
        {
            num1=perevod2(A, i);
        }
        else
        {
            num1=perevod1(A);
        }
        if(B.length()>1)
        {
            num2=perevod2(B, i);
        }
        else
        {
            num2=perevod1(B);
        }
        if(C.length()>1)
        {
            num3=perevod2(C, i);
        }
        else
        {
            num3=perevod1(C);
        }
        if (num3==(num1+num2))
        {
            cout << i;
            break;
        }
    }
    if (num3!=(num1+num2))
    {
        cout << -1;
    }
    return 0;
}
 
Текущее время: 06:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru