Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Число Армстронга


Автор: Stormantonio 14.12.2014, 17:37
Помогите разобраться с программой. Учусь заочно, времени в обрез, но хочется самому понять, как правильно должна быть написана эта программа. 
Суть задачи: Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу (например, 153). Получить все числа Армстронга, меньшие n(в n до 4 цифр).
Вот моя "печаль"... запутался окончательно, подскажите, что не так? И как должно быть? Просто выдает все числа под ряд. Помогите, пожалуйста! Хочу научиться программировать, а не заказывать...

Код C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, b, c;
            for (a = 0; a < 10; a++)
                for (b = 0; b < 10; b++)
                    for (c = 0; c < 10; c++)
                            {
                            double l = Math.Pow((a), (3)) + Math.Pow((b), (3)) + Math.Pow(©, (3));
                            double k = a * 100 + b * 10 + c;
                            if ((l = k) < 1000) Console.WriteLine(k);
                            Console.ReadKey();
                        }
        }
    }
}

Автор: Ilya81 15.12.2014, 09:10
Строчка
Код

if ((l = k) < 1000)

выглядит странно - ранее вычисленному l присваивается k, а затем почему-то проверяется, что оно меньше 1000 (смысл этого числа здесь не очень понятен). Может, вместо этого надо
Код

if (l == k)
  Console.WriteLine(k);


И ещё, кстати - почему double, а не int - ведь используются целые числа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)