Arkadaşlar c++ dan ödevim var biyerde tıkandım.ödevim döngüler konusundan ödevim şu
hangi 4 basamaklı sayının rakalmları kendi kuvvetlerine gönderilip toplanırsa yine aynı sayıyı verir. sorusunun cevabını hesaplayıp ekrana yazan program.
örn;
abcd=aüssüa+büssüb+cüssüc+düssüd=abcd
döngüyü sayac 1000den baslatıcam 9999 a kadar gidecek her sayacın basamaklarına ayıracak kendi kuvvetlerini alıcak toplama yazıcak en son toplamla sayıcının o anki degerini karsılastıracak eşitse toplamı ekrana yazıcak değilse sayac artıcak
ben sayacı 1000 den baslattım basamaklarına ayırabildim ama kendi kuvvetleriyle toplayamadım yapsamda sayacı bir türlü 1001 yapamadım yani bir arttıramadım.
bunu fonksyonla yapsam sadece pow kullanarak rakamların kuvvetlerini alsam nasıl yapabilirim
yardımlarınızı bekliyorum.
bu sekilde yaptım sayaca 1000 verdiğimde sonucu 1 veriyo topluyo ama su 1000 i arttırıpta kendisinin bulması lazım yani sayac 3435 te durması gerek çünkü 4 basamaklı bu koşulu içeren tek bu sayı var sayaca kendim 3435 yazdım sonuc 3435 dogru cıktı sayacı nasıl arttırırım
int sayac=1000, a, b, c, d, adegeri=0, bdegeri=0, cdegeri=0, ddegeri=0,kalan,toplam=0;
while(sayac<=9999){
kalan=sayac%1000;
a=(sayac-kalan)/1000;
sayac=kalan;
kalan=sayac%100;
b=(sayac-kalan)/100;
sayac=kalan;
kalan=sayac%10;
c=(sayac-kalan)/10;
d=kalan;
for(int binler=1;binler<=1;binler++){
if(a==1){
adegeri=a*a;
}
else if(a==2){
adegeri=a*a;
}
else if(a==3){
adegeri=a*a*a;
}
else if(a==4){
adegeri=a*a*a*a;
}
else if(a==5){
adegeri=a*a*a*a*a;
}
else if(a==6){
adegeri=a*a*a*a*a*a;
}
else if(a==7){
adegeri=a*a*a*a*a*a*a;
}
else if(a==8){
adegeri=a*a*a*a*a*a*a*a;
}
else if(a==9){
adegeri=a*a*a*a*a*a*a*a*a;
}
}
for(int yüzler=1;yüzler<=1;yüzler++){
if(b==1){
bdegeri=b*b;
}
else if(b==2){
bdegeri=b*b;
}
else if(b==3){
bdegeri=b*b*b;
}
else if(b==4){
bdegeri=b*b*b*b;
}
else if(b==5){
bdegeri=b*b*b*b*b;
}
else if(b==6){
bdegeri=b*b*b*b*b*b;
}
else if(b==7){
bdegeri=b*b*b*b*b*b*b;
}
else if(b==8){
bdegeri=b*b*b*b*b*b*b*b;
}
else if(b==9){
bdegeri=b*b*b*b*b*b*b*b*b;
}
}
for(int onlar=1;onlar<=1;onlar++){
if(c==1){
cdegeri=c*c;
}
else if(c==2){
cdegeri=c*c;
}
else if(c==3){
cdegeri=c*c*c;
}
else if(c==4){
cdegeri=c*c*c*c;
}
else if(c==5){
cdegeri=c*c*c*c*c;
}
else if(c==6){
cdegeri=c*c*c*c*c*c;
}
else if(c==7){
cdegeri=c*c*c*c*c*c*c;
}
else if(c==8){
cdegeri=c*c*c*c*c*c*c*c;
}
else if(c==9){
cdegeri=c*c*c*c*c*c*c*c*c;
}
}
for(int birler=1;birler<=1;birler++){
if(d==1){
ddegeri=d*d;
}
else if(d==2){
ddegeri=d*d;
}
else if(d==3){
ddegeri=d*d*d;
}
else if(d==4){
ddegeri=d*d*d*d;
}
else if(d==5){
ddegeri=d*d*d*d*d;
}
else if(d==6){
ddegeri=d*d*d*d*d*d;
}
else if(d==7){
ddegeri=d*d*d*d*d*d*d;
}
else if(d==8){
degeri=d*d*d*d*d*d*d*d;
}
else if(d==9){
ddegeri=d*d*d*d*d*d*d*d*d;
}
}
toplam=adegeri+bdegeri+cdegeri+ddegeri;