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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 14:20   #1
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию определить палиндром

Помогите решить задачу
найти все числа палендромы из диапазона 0...10000
Код:
 static void Main(string[] args)
        {
           
            for (int k = 0; k <203; k++)
            {
                int a = 0;
                int save = k;
                while (k > 0)
                {
                    k /= 10;
                    a++;
                }
                k = save;
               
                int f = k % 10;
                int h = k % 100;
                int m = k % 1000;
                int l, v, z, s, j, o;
                if (a == 1)
                {
                    Console.WriteLine("Число {0} - палиндром", k);
                }
                else
                if (a == 2)
                    {
                        l = (k - f) / 10;
                        v = l + f * 10;
                        if (v == k)
                        {
                            Console.WriteLine("Число {0} - палиндром",k);
                        }

                    }
                    else

                  if (a == 3)
                        {
                            z = (k - h) / 100;
                            s = z + f * 100;
                            if (s == k)
                            {
                                Console.WriteLine("Число {0} - палиндром", k);
                            }

                        }
                        else

                  if (a == 4)
                            {
                                j = (k - m) / 1000;
                                o = j + f * 1000;
                                if (o == k)
                                {
                                    Console.WriteLine("Число {0} - палиндром", k);
                                }
                            }
            }
            
            Console.ReadLine();
        }
Вот что вышло у меня, программа работает но частично, укажите на ошибки
Наталья Баева вне форума Ответить с цитированием
Старый 12.05.2013, 14:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
            for (int i = 10; i < 1000; i++)
            {
                if (i.ToString().ToLower() == (new string(i.ToString().ToLower().Reverse().ToArray()))) Console.Write("{0}\t", i);
            }
Подходит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2013, 14:47   #3
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Подходит?
мы такого не проходили поэтому это нельзя использовать
Наталья Баева вне форума Ответить с цитированием
Старый 12.05.2013, 14:47   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
найти все числа палиндромы из диапазона 0...10000
Код:
            for (int k = 0; k <203; k++)
Откуда взялось 203?
Код:
                int f = k % 10;
                int h = k % 100;
                int m = k % 1000;
                int l, v, z, s, j, o;
Кто в состоянии не запутаться, какая буква за что отвечает - поднимите руки.
Код:
                if (a == 2) //Если k - двузначное,
                    {
                        l = (k - f) / 10; //l - первая цифра, f - вторая цифра
                        v = l + f * 10;//Нафига?
                        if (v == k) //Можно же тупо "если первая цифра равна второй цифре"
                        {
                            Console.WriteLine("Число {0} - палиндром",k);
                        }

                    }
Цитата:
Вот что вышло у меня, программа работает но частично
А что не работает? Вынесите проверку на палиндром в отдельную функцию, принимающую int и возвращающую bool. Приведите код функции (желательно, добавив комментарии) и пример числа, на котором она выдаёт неверный ответ.
Abstraction вне форума Ответить с цитированием
Старый 12.05.2013, 14:53   #5
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Код:
    for (int k = 0; k <203; k++)
Откуда взялось 203?
А что не работает?
203 это я взяла меньший диапазон чтоб легче было. не работает у меня на 3значих и 4значных числах не все выводит
Наталья Баева вне форума Ответить с цитированием
Старый 12.05.2013, 15:07   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ладно. Усложним:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static int rev(int i) {
            int n = 0, k = 1; for (int j = i; j != 0; j /= 10) k *= 10; k /= 10;
            for (int j = i; j != 0; j /= 10)
            {
                n += j % 10 * k;
                k /= 10;
            }
            return n;
        }
        static void Main(string[] args)
        {
            for (int i = 10; i < 10000; i++)
            {
                if(rev(i)==i) Console.Write("{0}\t",i);

            }
            Console.ReadKey();
        }
    }
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2013, 17:26   #7
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
Подмигивание

Спасибо за помощь)))
Наталья Баева вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Палиндром С++ Guzal Помощь студентам 9 10.12.2012 09:09
палиндром Darknes Общие вопросы C/C++ 3 01.06.2011 17:58
Палиндром shark2010 Помощь студентам 11 23.04.2010 03:07
Палиндром Carbon Помощь студентам 9 12.11.2007 14:32