Armstrong Sayısı Bulmak C#

Soru : Her bir hanenin, basamak sayısı kadar üslerinin toplamı yine aynı sayıya eşit olan tamsayılara, “Armstrong sayıları” denir. Örneğin 153=1.1.1+5.5.5+3.3.3 (veya 153=13+53+33) olduğu için Armstrong sayı olarak adlandırılır. Buna göre girilen sayının bir Armstrong sayısı olup olmadığını ekrana yazdıran programı yazınız.

using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int ondalik = 1,sayac=0,sayi;
            Console.WriteLine("Sayıyı Giriniz");
            sayi = Convert.ToInt32(Console.ReadLine());
            while (sayi / ondalik >= 1)
            {
                ondalik = ondalik * 10;
                sayac++;
            }
            string sayi2;
            sayi2=Convert.ToString(sayi);
            int a,toplam2=0;
            int sayyac;
            sayyac =0;
            while (sayyac < sayac)
            {
                a = Convert.ToInt32(sayi2.Substring(sayyac, 1));
                int toplam = a;
                for (int i = 1; i <= sayac; i++)
                {
                    toplam = a * toplam;
                }
                toplam2 = toplam + toplam2;
                sayyac++;
            }
            if (toplam2 == sayi){
                Console.WriteLine("Girilen Sayı Bir Armstrong Sayısıdır.");
            }
            else
            {
                Console.WriteLine("Girilen Sayı Bir Armstrong Sayısı Değildir.");
            }
            Console.ReadKey();
        }
        
    }
}

Arkadaşlar açıkçası biraz uzun olmamış mı derseniz evet ancak math.pow vs. kullanmadım yani belki toplama, çıkarma ve döngüler dışında bir tek Substring kullandım bunu da kullanmadan yapabilirmiydik yapabilirdik ancak çok fazla uzuyacağını düşündüğüm için bu soru için normal bir yol olarak sizinle paylaşmak istedim..

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Protected by WP Anti Spam