Last active
March 13, 2022 21:28
-
-
Save gokhanyavas/5267057 to your computer and use it in GitHub Desktop.
1'den 999'a kadar olan tam sayılar içeresinden basamaklarının küp değeri toplamı kendisine eşit olan c programı
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//1'den 999'a kadar olan tam sayılar içeresinden basamaklarının küp değeri toplamı kendisine eşit olan program | |
-------------------- HATALI OLAN KODLAR ------------------------------- | |
/* | |
#include <stdio.h> | |
#include <conio.h> | |
int main() | |
{ | |
// while(1) // sonsuz döngü | |
// %g virgülden sonraki sıfırları göstermiyor | |
int i,n,kuptoplam,bir,onb,yuz; | |
for (i=1; i<=999; i++ ); | |
{ | |
yuz=i/100; | |
onb=(i-yuz*100)/10; | |
bir = i-(yuz*100+onb*10); | |
kuptoplam = bir*bir*bir+onb*onb*onb+yuz*yuz*yuz; | |
if (i= kuptoplam) | |
printf ("%d\n",i); | |
} | |
getch(); | |
// ekranın kapanmasını engelliyor.. | |
}*/ | |
------------------- DOGRU KODLAR ----------------------------- | |
#include <stdio.h> | |
int main() | |
{ | |
int i, n, kuptoplam, birler, onlar, yuzler; | |
for (i = 1; i <= 999; i++) | |
{ | |
yuzler=i/100; | |
onlar= (i-yuzler*100)/10; | |
birler = i-((yuzler*100)+(onlar*10)); | |
kuptoplam = (birler * birler * birler) + (onlar * onlar * onlar) + (yuzler * yuzler * yuzler); | |
if (i == kuptoplam){ | |
printf ("-----------------------\n"); | |
printf ("%d\n",i); | |
} | |
} | |
} | |
--------------------- CEVAP ------------------ | |
----------------------- | |
1 | |
----------------------- | |
153 | |
----------------------- | |
370 | |
----------------------- | |
371 | |
----------------------- | |
407 | |
Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?
Biraz gec olmus olabilir ama lazimsa su kodu kullanabilirsin.Daha dogru calisiyor.#include<stdio.h>
int main(){
int i,j,toplam=0;for(i=1;i<=999;i++) { int gecci = i; int gecici=toplam; devam: if(gecci%10>1) { int a = gecci%10; gecici+=a*a*a; gecci/=10; goto devam; } else { gecici+=gecci*gecci*gecci; } if(gecici==i) { printf("%d sayisinin rakamlarinin kupleri toplami kendisine esit(Toplam:%d)\n",i,gecici); } }
}
çalıştırdığımda senin örneği yanlış çalışıyor. tekrar kontrol et dostum. doğru şeklini yukarıda bulacaksın ;)
Algoritmayi kendim yazdim.yani o benim cocugum gibi.Kodu seninki gibi yapmadan duzeltebilirmiyim?
#include <stdio.h>
#include <stdlib.h>
int main() {
int birler, onlar, yuzler, i, total;
total=0;
for (i=1;i<1000;i++)
{
birler=i%10;
onlar=(i/10)%10;
yuzler=i/100;
total=(birler*birler*birler)+(onlar*onlar*onlar)+(yuzler*yuzler*yuzler);
if(i==total)
{
printf("%d \n\n",total);
}
}
return 0;
}
output
1
153
370
371
407
//0 da kattım ama isterseniz for içindeki 0'ı 1 yapabilirsiniz.
#include <stdio.h>
#include <conio.h>
int main() {
int x,a,b,c,d;
for (x=0;x<=999;x++){
a=x/100;
b=(x/10)%10;
c=(x%10)%10;
d=(a*a*a)+(b*b*b)+(c*c*c);
if (x==d) {
printf("%d\n",x);
}
}
getch();
return 0;
}
sizinkiler baya da kısa olmuş :) benim yaptığım uzun oldu sizinkine göre
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
rezil olduk:)