Müzik ve Teknolojiyle arası iyi olan bir zat-ı muhterem.

C++ Kaprekar Sayı Bulma Programı
3 hafta önce 47 okunma C++ Programlama

Merhabalar, bu yazıda okulda verilen bir ödev için kodlamış olduğum kaprekar sayı bulma programını sizlere paylaşacağım. Öncelikle kaprekar sayı nedir ondan bahsetmek istiyorum.

Kaprekar sayıDattathreya Ramachandra Kaprekar tarafından bulunan bir sayı. Mantığı ise şu şekilde; 4 basamaklı ve rakamları farklı bir sayı seçiyorsunuz. Bu sayısı büyükten küçüğe ve küçükten büyüğe sıralayıp farkını alın. Çıkan sonucu da aynı şekilde büyükten küçüğe ve küçükten büyüğe sıralayıp tekrar farkını alın. Bu şekilde bir kaç adım devam edince sonucun sürekli 6174 olduğunu göreceksiniz.

Örnek;

7210 – 0127 = 7083
8730 – 0378 = 8352
8532 – 2358 = 6174
7641 – 1467 = 6174.

Kaprekar sayı mantığını anladıktan sonra, kaprekar sayının c++ programın geçelim.


/*Kodlayan: Emirhan Bülbül 
Web site: www.emirhanbulbul.com  
C++ Programlama Örnekleri  
C++ İle Kaprekar Sayı Bulma Programı 
*/

#include <iostream>
#include <conio.h>

using namespace std;

int main(int argc, char** argv) {
		int toplamb=0,toplamk=0,sonuc;
	int matris[]={1,2,3,4};
	int buyukmatris[]={1,2,3,4};
	int kucukmatris[]={1,2,3,4};
	cout<<"4 basamakli bir sayi girin: (Her rakamdan sonra enter'a basin:')\n";
	for(int a=0;a<4;a++){
	cin>>matris[a];	
	}
	
	

	//Buyukten kucuge
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			if(matris[i]>matris[j]){
				int temp=matris[i];
				matris[i]=matris[j];
				matris[j]=temp;
			}
			
		}
		
	}
	
	for(int c=0;c<4;c++){
	buyukmatris=matris;
	}
	//Kucukten buyuge
	for(int r=0;r<4;r++){
		for(int g=0;g<4;g++){
			if(matris[r]<matris[g]){
					int temp=matris[r];
				matris[r]=matris[g];
				matris[g]=temp;
			}
			
		}
		
	}
	
for(int c=0;c<4;c++){
	kucukmatris=matris;
	}	
	
	

for(int b=0;b<4;b++){
// Tek tek girilen rakamları tek bir sayı haline getiriyor.
	if(b==0){
toplamb=(toplamb+(buyukmatris[b]*1000));

	}
		if(b==1){
toplamb=(toplamb+(buyukmatris[b]*100));

	}
		if(b==2){
toplamb=(toplamb+(buyukmatris[b]*10));

	}
		if(b==3){
toplamb=(toplamb+(buyukmatris[b]*1));

	}
}


for(int t=0;t<4;t++){
// Tek tek girilen rakamları tek bir sayı haline getiriyor.
	if(t==0){
toplamk=(toplamk+(kucukmatris[t]*1000));

	}
		if(t==1){
toplamk=(toplamk+(kucukmatris[t]*100));

	}
		if(t==2){
toplamk=(toplamk+(kucukmatris[t]*10));

	}
		if(t==3){
toplamk=(toplamk+(kucukmatris[t]*1));

	}
}

sonuc=(toplamb-toplamk); //büyük sayıdan küçük sayı çıkıyor
cout<<toplamb<<"-"<<toplamk<<"="<<sonuc<<endl;
	int sayac=1; // 7 seferde tamamlanması için sayaç.
burasi: //goto etiketi

if(sonuc!=6174){ //6174'e eşit değilse döndür.
	sayac++;
	if(sayac>7){
		cout<<"Kaprekar sayi degil.";
		return 0;
	}
	
	// girilen rakamları tek bir sayı yapmıştık şimdi tekrar parçalıyoruz.
matris[0]=sonuc/1000;
matris[1]=(sonuc/100)%10;
matris[2]=(sonuc/10)%10;
matris[3]=sonuc%10;

int toplamb=0,toplamk=0; //değerleri sıfırlıyoruz.
	//Buyukten kucuge
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			if(matris[i]>matris[j]){
				int temp=matris[i];
				matris[i]=matris[j];
				matris[j]=temp;
			}
			
		}
		
	}
	
	for(int c=0;c<4;c++){
	buyukmatris=matris;
	}
	//Kucukten buyuge
	for(int r=0;r<4;r++){
		for(int g=0;g<4;g++){
			if(matris[r]<matris[g]){
					int temp=matris[r];
				matris[r]=matris[g];
				matris[g]=temp;
			}
			
		}
		
	}
	
for(int c=0;c<4;c++){
	kucukmatris=matris;
	}	
	
	

for(int b=0;b<4;b++){

	if(b==0){
toplamb=(toplamb+(buyukmatris[b]*1000));

	}
		if(b==1){
toplamb=(toplamb+(buyukmatris[b]*100));

	}
		if(b==2){
toplamb=(toplamb+(buyukmatris[b]*10));

	}
		if(b==3){
toplamb=(toplamb+(buyukmatris[b]*1));

	}
}


for(int t=0;t<4;t++){

	if(t==0){
toplamk=(toplamk+(kucukmatris[t]*1000));

	}
		if(t==1){
toplamk=(toplamk+(kucukmatris[t]*100));

	}
		if(t==2){
toplamk=(toplamk+(kucukmatris[t]*10));

	}
		if(t==3){
toplamk=(toplamk+(kucukmatris[t]*1));

	}
}
sonuc=(toplamb-toplamk);
cout<<toplamb<<"-"<<toplamk<<"="<<sonuc<<endl;
goto burasi;

		
}
	return 0;

}


Ahali ne demiş ?

Etiketler

Diğer Projelerim
Pc Webim Tarifimvar Rounded Image Rounded Image
   

Ben Kimim ?

Bilgi Ben Emirhan. Burası da benim kişisel mecram. Epeydir web sitesi işleriyle uğraşıyorum... Her neyse bu kadar bilgi yeter. Devamı için tam da şu yandaki butona tıkla. Devamı...
Bağlantılar: Pera Bet Güncel Adresi,www.netsporhaber.com,Elektronik Sigara Likit, Smok Elektronik Sigara, Elektronik Sigara
porno porno izle sikiş hd porno

Neler Biliyorum ?

WordPress 60% Complete
C 95% Complete
HTML 80% Complete
CSS 80% Complete

Copyright © 2014 Tüm hakları tarafımca saklanmaktadır.