Mantık şu şekilde : 468 sayısını ele alalım
468 10 bölüp kalanı almak için %10 yapıyoruz yani aslında birler basamağı gelmiş oluyor. Bu da 8
Başta toplam değerimiz 0,buna birler basamağını ekledik
468i 10a bölüp sayıyı 46 yapmış oluyoruz sonra başa dönüp işleme devam ediyoruz
Programın kodları:Neden while kullandığımın açıklamasını detaylıca yazıyorum: öncelikle zaten 0 ın rakam toplamını bulamayacağımız için onu elemek amacıyla aynı zamanda bir basamak azaltmak için 10a bölme yaptığımızdan 10a bölünecek değer kalmadığına programın durup toplamı yazmasını istiyoruz.
Kod: Tümünü seç
#include <iostream>
using namespace std;
int main()
{
int a, sum=0, b;
cout<<"bir sayi gir arkadas: ";cin>>a; //bir sayı istiyor onada'a' diyoruz
while(a>0) //rakamlarin toplami icin 0 dan farklı bir sayı gerek burada onu sorguluyoruz
{
b=a%10; // sayiyi 10'a bölünce kalanımız bize birler basamağını veriyor
sum=sum+b; // birler basamagını toplama ekliyoruz
a=a/10; //diger basamakları da bulamabilmek icin 'a' sayısını 10 a bolerek basamak dusuruyoruz
}
cout<<"senin rakamlarinin toplami suna esittir arkadas= "<<sum<<endl;
return 0;
}
kaynak :
Kod: Tümünü seç
https://twitter.com/yigtdogn