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

как с пoмощью цикла и оператора If проверить полиндром ли число - C++

Восстановить пароль Регистрация
 
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
11.02.2011, 21:35     как с пoмощью цикла и оператора If проверить полиндром ли число #1
собственно вопрос в названии.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2011, 21:35     как с пoмощью цикла и оператора If проверить полиндром ли число
Посмотрите здесь:

как без цикла, условия и тернарного оператора определить максимальный елемент из трех чисел? (это для Си) C++
Решение функции с использованием оператора цикла While C++
C++ Помогите с Использование оператора цикла
C++ сочетания оператора цикла и условного оператора
Оператора цикла с постусловием C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
11.02.2011, 21:38     как с пoмощью цикла и оператора If проверить полиндром ли число #2
Ставите два указателя на начальный и конечный символ и начинаете их сдвигать, пока не пересекутся. Если два каких-то символа не равны окажутся - строка не палиндром, если указатели пересеклись, а выхода из цикла не было - палиндром.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.02.2011, 21:42     как с пoмощью цикла и оператора If проверить полиндром ли число #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main(){
  int num = 1233321, num_ = num, tail = 0;
  while(num){
    tail *= 10;
    tail += num % 10;
    num /= 10;
  }
  std::cout << ( num_ == tail? "YES" : "NO" );
  return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
11.02.2011, 21:43  [ТС]     как с пoмощью цикла и оператора If проверить полиндром ли число #4
silent_1991, у меня есть указатели,если хотите взгляните на код.
код

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
void main()
{
 srand(time(0));
 //advertisement of arrays sizes
const int xsize=5;
const int ysize=15;
//arrays advertisement
int x[xsize];
int y[ysize];
int yc=0;   //counter for y array
int min=0;  //advertisement of minimum element in Y array
int* px=&x[0];  //x arrays pointer
int* py=&y[0];  //y arrays pointer
for(int i=0;i<xsize;i++) //input array x
 *(px+i)=rand()%20-10;
for(int i=0;i<xsize;i++) //input array y
 if(*(px+i)%2==0 && *(px+i)!=0)
 {
  *(py+yc++)=*(px+i);
  *(py+yc++)=0;
  *(py+yc++)=0;
 }
min=*py;
for(int i=0;i<yc;i++)   //minimum
 if(min>*(py+i))
 {
  min=*(py+i);
  minInd=i;
 }
for(int i=0;i<xsize;i++) //output of X array
 cout<<*(px+i)<<" ";
cout<<endl;
for(int i=0;i<yc;i++) //output of Y array
 cout<<*(py+i)<<" ";
cout<<endl;
cout<<"Minimum in Y array is: "<<min<<endl;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.02.2011, 21:52     как с пoмощью цикла и оператора If проверить полиндром ли число #5
Еще вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <sstream>
 
bool pol(const int &a){
  std::ostringstream ost;
  ost << a;
  std::string num_ = ost.str();
  return std::equal(num_.begin(), num_.end(), num_.rbegin());
}
 
int main(){
  int num = 1221;
  std::cout << ( pol(num)? "YES" : "NO" );
  return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
11.02.2011, 21:55  [ТС]     как с пoмощью цикла и оператора If проверить полиндром ли число #6
asics, а можно комментировать?

Добавлено через 15 секунд
asics, первый вариант лучше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2011, 22:00     как с пoмощью цикла и оператора If проверить полиндром ли число
Еще ссылки по теме:

Сочетания оператора цикла и условного оператора C++
Функции. Проверить, простое число или нет. Увеличить его значение на натуральное число M. Проверить, осталось ли оно простым C++
Как с помощью цикла проверить все вхождения символов? C++

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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.02.2011, 22:00     как с пoмощью цикла и оператора If проверить полиндром ли число #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main(){
  int num = 1233321, num_ = num, tail = 0;
  while(num){//Пока num не равно нулю крутим цыкл
    tail *= 10;//Умножаем на 10 для того, что бы можно было додать следеющую цыфру в следующий розряд
    tail += num % 10;//Додаем цыфру, начиная з конца
    num /= 10;//Убираем цыфру которую использовали, из исходного числа
  }
  std::cout << ( num_ == tail? "YES" : "NO" );//Если исходное равно перевернутому...
  return 0;
}
Yandex
Объявления
11.02.2011, 22:00     как с пoмощью цикла и оператора If проверить полиндром ли число
Ответ Создать тему
Опции темы

Текущее время: 13:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru