Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2022, 15:49   #1
ГиперФлюойд
 
Регистрация: 13.02.2022
Сообщений: 4
По умолчанию Целые числа.

Доброго времени суток!
Задача: Симметричное число

Дано четырехзначное число. Определите, является ли его десятичная запись симметричной. Если число симметричное, то выведите 1, иначе выведите любое другое целое число. Число может иметь меньше четырех знаков, тогда нужно считать, что его десятичная запись дополняется слева незначащими нулями.

Формат входных данных

Вводится единственное число.

Формат выходных данных

Выведите одно целое число - ответ на задачу.

Проблема: мой код успешно работает с целыми четырёхзначными числами, но вот с вещественными четырёхзначными числами к сожалению нет.. помогите, пожалуйста с разъяснением, в чём моя ошибка и как исправить?

Код:
#include <iostream>
using namespace std;
int main()
{
    int a,c1,c2,c3,c4;
    cin >> a;
    c1 = a / 1000;
    c2 = ( a / 100 ) % 10 + 1;
    c3 = a / 10 % 10 + 1;
    c4 = a % 10;
    a = ( c1 % c4 ) + ( c2 % c3 ) + 1;
    cout << a;
    return 0;
}
ГиперФлюойд вне форума Ответить с цитированием
Старый 01.03.2022, 16:02   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от ГиперФлюойд Посмотреть сообщение
мой код успешно работает с целыми четырёхзначными числами
Попробуйте ввести 1000

Цитата:
Сообщение от ГиперФлюойд Посмотреть сообщение
в чём моя ошибка
У вас все типа чисел целые. И алгоритм не годится.
ForenLi вне форума Ответить с цитированием
Старый 01.03.2022, 20:38   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

А если так:
Цитата:
Сообщение от ГиперФлюойд Посмотреть сообщение
Код:
#include <iostream>
using namespace std;
int main()
{
    int a,c1,c2,c3,c4,tmp;
    cin >> a;
    c1 = a / 1000;
    c2 = (a - c1 * 1000)/100 ;
    tmp = (c1*10 +c2) * 100 ;
    c3 = (a - tmp) / 10 ;
    c4 = a % 10;
    if ((c1==c4) && (c2==c3)) cout << 1; else  cout << 2 ;
    return 0;
}
digitalis вне форума Ответить с цитированием
Старый 06.03.2022, 20:13   #4
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Можно исключить ветвление операцией xor
Код:
cout << 1+(c1^c4)+(c2^c3)
FPaul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны целые числа m, a1,..., a20. Найти три натуральных числа i, j, k, каждое из которых не превосходит двадцати, такие, что ai+ aj anabel123123 Помощь студентам 11 24.11.2014 23:43
Задача в С#. Дан двоичный файл, содержащий целые числа. Создать новый файл, удалив некоторые числа... malinkkaa Помощь студентам 0 23.03.2014 23:08
Множества: Даны целые числа а1,.....,Аn. Вывести на печать сообщение - имеется ли в последовательности х повторяющиеся числа lialia Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 21:11
Даны целые числа р и q. Получить все делители числа q, взаимно простые c г. Владан Паскаль, Turbo Pascal, PascalABC.NET 2 03.12.2012 23:39
Даны натуральные числа n,p, целые числа a1 , ... ,an. Наталья111 Фриланс 10 09.11.2010 20:09