12 Aralık 2013 Perşembe

C Sharp Konsol Uygulamalar 100 Kapılı Hapishane Sorusunun Çözümü



KONU : Bir hapishanede yüz hücre var. Hücre kapılarının kilitlerini anahtarla bir kez çevirince açılıyor, bir kere daha çevirince tekrar kapanıyor. Baş gardiyan Kemal, yüz gardiyana bu kapıların anahtarlarından birer tane dağıtıyor. Başlangıçta tüm kapılar kapalıdır. Birinci gardiyan tüm kapıların kilitlerini birer kez çeviriyor. İkinci gardiyan; ikinci, dördüncü... yüzüncü, yani sadece ikinin katları olan kapıların kilitlerini birer kez çeviriyor. Üçüncü gardiyan; üçün katlarını... Dördüncü gardiyan, dördün katlarını... ... ... Yüzüncü gardiyan da sadece yüzüncü kapının kilidini bir kez çeviriyor. Hangi kapılar açık kalır?
ETİKETLER: c sharp konsol - c sharp console - c sharp döngüler - c sharp generic list - c sharp zeka sorusu





UYGULAMAYI İNDİR



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace c_sharp_yuz_kapili_hapishane_sorusu
{
    class Program
    {
        static void Main(string[] args)
        {
            List< bool > kapilar = new List< bool >();

            for (int i = 0; i < 101; i++)
            {
                kapilar.Add(false);
            }

            for (int i = 1; i < 101; i++)
            {
                for (int j = i; j < 101; j=j+i)
                {
                    kapilar[j] = !kapilar[j];
                }
            }


            for (int i = 1; i < 101; i++)
            {
                if (kapilar[i])
                    Console.WriteLine("Açık Kapı No " + i.ToString());
            }

            Console.ReadKey();

        }
    }
}


UYGULAMAYI İNDİR

2 yorum :

  1. for (int i = 1; i < 101; i++)
    {
    int say =0;
    for (int ii = 1; ii <= i; ii++)
    {

    if (i%ii==0)
    {
    say++;
    }
    }
    if ((say%2)!=0)
    {
    Console.WriteLine(i + ".nolu kapı açık");
    }
    }
    console.readkey();



    yeterli sanki.

    YanıtlayınSil
    Yanıtlar
    1. Olabilirç Daha kısasını da yapabilirsin. tek if kullanarak mesela

      Sil