IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 29 Kasım 2010, 12:40   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
C++ (Sudoku)




Sudoku çözen program. Sizin tek yapmanız gereken 9x9 luk sudoku matrisini sudoku.in dosyasına yazmak. Bulunması gereken sayıların yerine 0 yazmanız gerekiyor.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* IRCForumlari.Net */ #include<iostream> #include<fstream> #include<cstdlib> #define FOR(i,j,k) for(i=j;i<k;i++) using namespace std; int A[10][10]; int satir[10][10],sutun[10][10],kare[10][10]; int sifir[82][2]; int sifir_sayisi; void veri_oku() { int i,j,gecici; ifstream r("sudoku.in"); FOR(i,0,9) FOR(j,0,9) { r>>A[i][j]; if(!A[i][j]) { sifir[sifir_sayisi][0]=i; sifir[sifir_sayisi++][1]=j; } else { gecici=A[i][j]; satir[i][gecici]=1; sutun[j][gecici]=1; kare[i/3*3+(j+3)/3][gecici]=1; } } r.close(); } void yaz() { int i,j; FOR(i,0,9) { FOR(j,0,9) cout<<A[i][j]<<' '; cout<<endl; } exit(0); } void ekle(int i,int j,int a) { A[i][j]=a; satir[i][a]=1; sutun[j][a]=1; kare[i/3*3+(j+3)/3][a]=1; } void cikar(int i,int j,int a) { A[i][j]=0; satir[i][a]=0; sutun[j][a]=0; kare[i/3*3+(j+3)/3][a]=0; } void yap(int yer) { if(yer==sifir_sayisi) yaz(); int i=sifir[yer][0],j=sifir[yer][1],a; FOR(a,1,10) if(!satir[i][a] && !sutun[j][a] && !kare[i/3*3+(j+3)/3][a]) { ekle(i,j,a); yap(yer+1); cikar(i,j,a); } } main() { veri_oku(); yap(0); }

sudoku.in dosyası buna benzer olmalı.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
4 0 7 0 0 2 9 0 0 8 0 0 0 3 0 0 2 0 0 5 0 8 9 0 3 0 4 1 8 0 7 0 5 6 0 2 0 0 0 1 0 0 0 0 0 7 4 0 2 0 0 8 0 1 0 1 0 5 7 0 0 0 0 0 2 8 0 0 4 7 0 5 5 0 0 9 0 0 1 4 0


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
sudoku


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık