Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 8
1

Проверка, является ли число палиндромом

27.10.2018, 22:03. Показов 1065. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проверить, что данное число читается одинаково слева направо и справа налево.Найдите ошибку

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
#include "stdafx.h"
#include <iostream>  
#include <conio.h> 
#include <clocale>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{   
 setlocale (LC_ALL, "Russian");
     int n,a,b,c,d,x,y;
     cout<<" Введите n= ";
     cin>>n;
     for(n>999;n<=9999;n++);
  {  
    a=n/1000;
    d=n%10; 
    x=n%100; 
    c=x/10; 
    y=n/100;
    b=y%10;
    if((n/1000==n%10)&&(y%10==x/10)cout<<n<<"Данное число читается одинаково слева направо и справа налево "<<endl;
    else cout<<"Данное число не читается одинаково слева направо и справа налево"<<endl;
  }
    getch();
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2018, 22:03
Ответы с готовыми решениями:

Является ли число палиндромом
Дано натуральное число n (n&gt;=9999). Является ли это число палиндромом (перевертышем) с учетом...

Является ли число палиндромом
Алгоритм проверки числа должен быть именно такой (так поставили задачу) Но он работает...

Проверка, является ли текст палиндромом: вывод true в случае пустой строки
Помогите пожалуйста разобраться. прохожу курс и там задание по поиску палиндромов. Суть задачи...

Проверить, является ли число палиндромом (do/while)
Проверить, будет ли введенное число палиндромом (например, палиндромом 1254521 - он читается с...

2
Мозгоправ
1744 / 1038 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
28.10.2018, 00:47 2
Цитата Сообщение от Dashkaaa Посмотреть сообщение
C++
1
for(n>999;n<=9999;n++);
Такой оператор for исполняет пустой оператор ;. А блок {...}, идущий следом, выполняется всегда один раз.
Кроме того, вы что-то очень сильно перемудрили с рассчётами

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
#include <iostream>  
#include <conio.h> 
#include <clocale>
#include <vector>
 
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian");
    int n;
    cout << " Введите n= ";
    cin >> n;
    // разложить число на разряды и поместить в вектор
    vector<int> v;
    while (n > 0) {
        v.push_back(n % 10);
        n /= 10;
    }
 
    // проверить на "зеркальность"
    bool isPalindrome = true;
    for (size_t i = 0; i < v.size() / 2; ++i) {
        if (v[i] != v[v.size() - i - 1]) {
            isPalindrome = false;
            break;
        }
    }
    if (isPalindrome)
        cout << "Данное число читается одинаково слева направо и справа налево " << endl;
    else
        cout << "Данное число не читается одинаково слева направо и справа налево" << endl;
    getch();
 
    return 0;
}
Можно, конечно, не связываться с вектором, а сделать на обычном массиве.
Но с вектором просто удобнее.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.10.2018, 01:47 3
можно так:
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
#include <iostream> 
#include <cmath> 
using namespace std;
 
int main()
{
    int n, n0, n1, n2=0, count=1;
    cout <<"n="; cin >>n;
    n0=n;
    n1=n;
    
    while ((n/=10)>0) count++;
    
    while (n1>0)
      {
        n2+=n1%10*pow(10,count);
        count--;
        n1/=10;
      }    
    
    if (n0==n2/10) cout <<"PALINDROM\n";
    else cout <<"NO PALINDROM\n";
    
system("pause");
return 0;
}
или через строку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
#include <string> 
using namespace std;
 
int main()
{
    string s;
    cout <<"n="; cin >>s;
    int k=0, m=s.size();
    for (int i = 0; i < m/2; i++)   
        if (s[i]!= s[m-1-i]) {k++; break;} 
        
    if (k==0) cout <<"PALINDROM\n";
    else cout <<"NO PALINDROM\n";
    
system("pause");
return 0;
}
0
28.10.2018, 01:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 01:47
Помогаю со студенческими работами здесь

Определить, является ли число палиндромом
Дано натуральное число n (n&lt;9999). Определить, является ли это число палиндромом (перевертышем) с...

Определить, является ли число палиндромом
Если можно то плиз с коментариями, я ток новичёк в этой проге, заранее спс. 1) Переменной t...

Определить, является ли число палиндромом
Проверить истинность высказывания: «Данное четырехзначное число читается одинаково слева направо...

Является ли данное число палиндромом
дано натуральное число выяснить есть ли данное число палиндромом #include&lt;iostream.h&gt;...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru