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

Помогите с палиндромами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритмы и методы http://www.cyberforum.ru/cpp-beginners/thread356842.html
Помогите написать программу на Borland C++ чтобы по вот этой формуле: f(x)=4\ast \sin \left(x \right)^4+2\ast \cos \left(x \right)^3+2 Программа использовала четыре разных метода(то есть четыре...
C++ Служба времени задача остановить службу времени от пользователя с обычными правами. просто остановки от админа - я добился, почитав хэлп к студии и рдсн. Теперь задача чтобы кликнув по exe у юзера с простыми... http://www.cyberforum.ru/cpp-beginners/thread356821.html
c++, visual studio 2010! 7 C++
Given three natural numbers a, b, c which represent the day, month and year of some date. For example: 1, 4, 1991 represents 1st April 1991. Output three numbers which represent the following date. ...
c++, visual studio 2010! 6. C++
Given natural number n. Compute 2 to the power of n. Do not use pow() function. Example: Input: 5 Output: 32
C++ c++, visual studio 2010! 2. http://www.cyberforum.ru/cpp-beginners/thread356809.html
Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365 Example:
C++ c++, visual studio 2010! 1. Given real numbers a, b, c, where a is not 0. Find if a quadratic inequality ах2 + bx + с = 0 has real roots. If it does, output them. If there are no solutions, output “no solution”. Output roots on... подробнее

Показать сообщение отдельно
zaqqaz
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
26.09.2011, 23:53  [ТС]
Цитата Сообщение от x1Mike7x Посмотреть сообщение
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
#include <cmath>
#include <iostream>
 
bool is_palindrome( int X )
{
    int Temp1, Temp2, L = (int)pow( 10.0, (double)(int)log10( (double)X ) );
    while ( L )
    {
        Temp1 = X % 10;
        Temp2 = X / L;
        if ( Temp1 != Temp2 )
            return false;
        X %= L;
        X /= 10;
        L /= 100;
    }
    return true;
}
 
int main()
{
    int N;
    std::cin >> N;  
    for ( int i = 1; i <= N; ++i )
    {
        if ( is_palindrome( i ) )
        {
            std::cout << i << " is palindrome";
            if ( is_palindrome( i * i ) )
                std::cout << " & square of " << i << " ( " << i * i << " ) palindrome too" << std::endl;
            else
                std::cout << ", but square of " << i << " ( " << i * i << " )isn't palindrome" << std::endl;
        }
    }
    return 0;
}
http://codepad.org/UsPY7eW5

Вот это даёт количество цифр в числе минус 1, что по сути есть степенью 10ки, на которую надо делить наше число, чтобы узнать последний десятичный разряд.
C++
1
(int)log10( (double)X )
--------------------------------------------------------------------------------------

Если же исправлять Вашу программу, то скорее всего ошибка в строке 21
C++
1
2
3
if (i+1==y)
//заменить на
if ((i+1)*(i+1)==y)
Да, действительно, проглядел 21ую строку. Спасибо.
Проблема решена!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru