Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nuts23
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 30
#1

Найти ошибку в решении "Числа - палиндрома" (задача с acmp) - C++

28.07.2013, 21:32. Просмотров 842. Ответов 1
Метки нет (Все метки)

Число - палиндром
(Время: 1 сек. Память: 16 Мб Сложность: 29%)

Напомним, что палиндромом называется строка, одинаково читающаяся с обеих сторон. Например, строка «ABBA» является палиндромом, а строка «ABC» - нет.

Необходимо определить, в каких системах счисления с основанием от 2 до 36 представление заданного числа N является палиндромом.

В системах счисления с основанием большим 10 в качестве цифр используются буквы латинского алфавита: A, B, ... , Z. Например, A11 = 1010, Z36 = 3510.
Входные данные

Входной файл INPUT.TXT содержит заданное число N в десятичной системе счисления (1 <= N <= 109).
Выходные данные

Если соответствующее основание системы счисления определяется единственным образом, то выведите в первой строке выходного файла OUTPUT.TXT слово «unique», если оно не единственно — выведите в первой строке выходного файла слово «multiple». Если же такого основания системы счисления не существует — выведите в первой строке выходного файла слово «none».

В случае существования хотя бы одного требуемого основания системы счисления выведите через пробел в возрастающем порядке во второй строке выходного файла все основания системы счисления, удовлетворяющие требованиям.
У меня WA на 4-ом тесте.
C++ (Qt)
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
#include <stdio.h>
#include <stdio.h>
#include <math.h>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
int per_check(long long n, int b)
{
    int A[50];
    for (int i = 0; i < 50; ++i)
        A[i] = 0;
    int i;
    i = 0;
    int NA;
    NA = 0;
    while (n>0)
    {
        NA = i;
        A[i] = n%b;
        n/=b;
        ++i;
    }
    int j = 0;
    int z = 0;
    while (A[j] == A[NA-j] && j<=i/2)
    {
        ++z;
        ++j;
        if (z == i/2)
            return 1;
    }
    return 0;
}
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    long long N;
    scanf("%I64d", &N);
    int k = 0;
    int A[36];
    for (int i = 0; i < 36; ++i)
        A[i] = 0;
    int j = 0;
    for (int i = 2; i <=36; ++i)
    {
        if (per_check(N, i))
        {
            ++k;
            A[j] = i;
            ++j;
        }
    }
    if (k == 0)
        printf("none");
    else if (k == 1)
    {
        printf("unique\n");
        printf("%d", A[0]);
    }
    else
    {
        printf("multiple\n");
        for (int i = 0; i < j; ++i)
            printf("%d ", A[i]);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку в решении "Числа - палиндрома" (задача с acmp) (C++):

Найти ошибку в решении задачи "Шифровка" (acmp) - C++
#include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; #include...

Ошибка в решении задачи "Судоку" (acmp) - C++
Здравствуйте. Моё решение: #include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; ...

Задача из Златопольского: "Найти числа с известным количеством делителей". Не могу найти ошибку - C++
Здравствуйте. Задача следующая: Найти все целые числа из промежутка от a до b, у которых количество делителей равно k. К примеру я взял...

Задача "Выпуклая оболочка" (acmp) - C++
Вот мой код, при проверке в системе WA на 6-ом тесте. Алгоритм - найти крайние точки и построить прямоугольник по ним. #include &lt;stdio.h&gt;...

Преобразование последовательности - 2 (задача с acmp). Найти ошибку в коде - C++
Здравствуйте. #include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include...

Не могу понять ошибку "C2043: недопустимый break". Задача: найти подстроку в строке - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; using namespace std; int...

1
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.07.2013, 21:51 #2
зачем так мудрить, все же просто. проверка числа a на симметричность в системе счисления с основанием q:
C++
1
2
3
4
5
6
7
8
9
int check(int a, int q)
{
    int b = 0, c = a;
    do{
        b = b * q + c % q;
        c /= q;
    }while(c);
    return a == b;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2013, 21:51
Привет! Вот еще темы с ответами:

Помогите найти ошибку в программе составления палиндрома числа - C++
Вот програма в которой вводится число а потом высверивается массив из этих чисел, а также составляет палиндром ( палиндром это числа типа...

Неточность в понимании условия задачи "Жук" (acmp) - C++
Моё решение: #include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; ...

Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений - C++
Здравствуйте, помогите написать две программы. 1) Дано натуральное число. Найти сумму последних &quot;n&quot; цифр &quot;n&quot; числа, не применяя...

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов - C++
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt; using namespace std; int main()...


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

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

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