using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace sinirsiz
{
class Program
{
static void Main(string[] args)
{
string sayi1, sayi2, sonuc = ""; /* string türünde içi boş olan sonuc tanımladık */
int uzunluk, i, arasonuc;
int elde = 0;
Console.Write("1. sayiyi giriniz: ");
sayi1 = Console.ReadLine();
Console.Write("2. sayiyi giriniz: ");
sayi2 = Console.ReadLine();
uzunluk = sayi1.Length; /* birinci sayının uzunlugunu aldık */
for (i = uzunluk - 1; i >=0; i--) /* uzunluk 0 dan başlamadığı için -1 yaptık */
{
arasonuc = (Convert.ToInt32(sayi1[i].ToString())) + (Convert.ToInt32(sayi2[i].ToString())) +
elde; /* sayi birin tek tek elemanlarını sayi ikinin elemanları ile toplattık. eldeyi de
toplama ekledik. */
sonuc = arasonuc % 10 + sonuc; /* sonucta tek tek toplama yaptığımız değerin tek elemanın
alcağımız için aratoplamın 10a göre modunu aldık. */
if (arasonuc >= 10) /* aratoplam 10dan büyük ise elde mizi 1 yaptık . */
{
elde = 1;
}
}
if (elde == 1) /* sonunda elde değerimiz bir ise sonuc değerinin önüne yazdırdık. */
{
sonuc = elde + sonuc;
}
Console.WriteLine(sonuc);
Console.ReadLine();
}
}
}
farkı basamak sayısına sahipse nasıl yapacağız örnegin 123 ile 12
ReplyDeleteKodda biraz değişiklikler yapıp çözmeye çalıştım bir bak istersen
ReplyDeleteusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace sinirsiz
{
class Program
{
static void Main(string[] args)
{
string sayi1, sayi2, sonuc = ""; /* string türünde içi boş olan sonuc tanımladık */
int uzun=0, i, arasonuc;
int elde = 0;
int fark=0;
Console.Write("1. sayiyi giriniz: ");
sayi1 = Console.ReadLine();
Console.Write("2. sayiyi giriniz: ");
sayi2 = Console.ReadLine();
int ccc = sayi1.Length - sayi2.Length;
int bbb = sayi2.Length - sayi1.Length;
int cc,bb;
cc= Math.Abs(ccc) ;//mutlak deger
bb= Math.Abs(bbb) ;
if(cc>=bb){
fark=cc;
}
else {
fark=bb;
}
string sifir = "";
if (fark != 0)
{
for (int g = 0; g < fark; g++)
{
sifir = sifir + "0";
}
}
if (sayi1.Length > sayi2.Length)
{
sayi2 = sifir + sayi2;
uzun = sayi1.Length;
}
if (sayi2.Length > sayi1.Length)
{
sayi1 = sifir + sayi1;
uzun = sayi2.Length;
}
/* birinci sayının uzunlugunu aldık */
for (i = uzun - 1; i >= 0; i--) /* uzunluk 0 dan başlamadığı için -1 yaptık */
{
arasonuc = (Convert.ToInt32(sayi1[i].ToString())) + (Convert.ToInt32(sayi2[i].ToString())) +
elde; /* sayi birin tek tek elemanlarını sayi ikinin elemanları ile toplattık. eldeyi de
toplama ekledik. */
sonuc = arasonuc % 10 + sonuc; /* sonucta tek tek toplama yaptığımız değerin tek elemanın
alcağımız için aratoplamın 10a göre modunu aldık. */
if (arasonuc >= 10) /* aratoplam 10dan büyük ise elde mizi 1 yaptık . */
{
elde = 1;
}
}
if (elde == 1) /* sonunda elde değerimiz bir ise sonuc değerinin önüne yazdırdık. */
{
sonuc = elde + sonuc;
}
Console.WriteLine(sonuc);
Console.WriteLine(fark +" " + sifir +" "+ uzun + " " + bb + " "+ cc );
Console.ReadLine();
}
}
}