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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ сигналы SIGINT SIGABORT http://www.cyberforum.ru/cpp-beginners/thread930050.html
нужно организовать программу перехвата сигналов: 1. SIGINT - при нажатии ctrl+c 2. SIGABRT - при вызове функции abort() первое попробовал организовать при бесконечном цикле - не получилось второе вроде бы перехватывает но при этом выдает ошибку debug error! как поступить? #include <iostream> using namespace std;
C++ Написание и использование DLL Доброго времени суток! При попытке написать элементарную DLL возникло несколько вопросов: 1) Почему без указания экспорта в DEF-файле, функцию нельзя "подцепить" с помощью GetProcAddress, при том, что она есть в таблице экспорта? 2) Почему многие используют EXTERN_C(extern "C") перед описанием экспортируемой функцией? 3) Какие функции экспортируются при экспорте всего класса? (У меня... http://www.cyberforum.ru/cpp-beginners/thread930046.html
C++ Повторный вызов конструктора?!
Мой небольшой класс class CString { private: char* str; int len; int real_size; public: CString() : len(0), real_size(10) {
Сортировка чисел C++
Всем добрый вечер! Прошу вашего прощения за тупость,и помощи. Мне было поставлено несложное задание на плюсах, но столкнулся с проблемой В написании одного алгоритма - сказывается нехватка знаний. Мне нужен алгоритм, сортирующий (не подходящее слово, но не могу подобрать лучше) числа. Дан матрица, предположим 5*5. Заполнена полностью нулями. Используется двоичная с/с. Нужно чтоб были...
C++ Крестики-нолики, проверка http://www.cyberforum.ru/cpp-beginners/thread930012.html
Подскажите пожалуйста как тут реализовать проверку по прямой и по диагонали? #include <iostream> #include <cmath> using namespace std; class Board { protected:
C++ функия NtCreateUserProcess как использоват эту функцию и какие параметры надо передавать заранее спасибо подробнее

Показать сообщение отдельно
nuts23
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 30

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

28.07.2013, 21:32. Просмотров 757. Ответов 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]);
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru