Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > Algoritma array
Yazar
jacaleren


avatar

Kayıt: 29.08.2012
03.11.2013-14:25 #79025
Kafama birşey takıldı. Biz mesela yeni değerler buluyoruz algoritmada ve bunların yanyana yazılmasını istiyoruz ama benim şuanki algoritma bilgim 1 aylık felan onuda söyliyim sonra ileri düzeyde yazmayın :) Diyelimki asal çarpanlarını bulduran algoritma yazdırıcaz bunu bana yazabilir misiniz? ben yeni bir array açıp bulduğum sonucu o arrayın içine attım böyle birşey mümkün mü ? Yarın sınavı var erken cevap verirseniz sevinirim.





Yazar
jacaleren


avatar

Kayıt: 29.08.2012
03.11.2013-14:30 #79026
Birde şu sorunun algoritmasını yazabilir misinz?

Klavyeden girilecek olan bir dizi miktarın, hangi banknotlarla tam olarak ödenebileceğini belirleyen algoritma tasarlayın(Örneğin; klavyeden 1250, 1500, 1780 ve 1110 miktarları girilmiş olsn. Bu miktarları ödemek için gerekli banknotlar şöyle olmalıdır: 555x100 , 2x50 , 1x20, 2x10)





Yazar
wardom


avatar
Kirklareli
admin
Kayıt: 12.11.2006
16.11.2013-14:04 #79036
jacaleren yazdi
 
Birde şu sorunun algoritmasını yazabilir misinz?

Klavyeden girilecek olan bir dizi miktarın, hangi banknotlarla tam olarak ödenebileceğini belirleyen algoritma tasarlayın(Örneğin; klavyeden 1250, 1500, 1780 ve 1110 miktarları girilmiş olsn. Bu miktarları ödemek için gerekli banknotlar şöyle olmalıdır: 555x100 , 2x50 , 1x20, 2x10)


Öncelikle neden kendin denemedin bunun algoritmasını yazmayı? Birilerine kod veya algoritma yazdırmayı istiyorsan, yeri burası değil. Rentacoder'ı falan denemelisin.

Herneyse, öncelikle bankonot ayırımlarında hata var. Hesapladığıma göre girilen değerlerin toplamı 5640 yapıyor ve bunun bankonotları da 56x100, 0x50, 2x20 ve 0x10 yapıyor.

Peki bunu nasıl bulabilirim? Çok basit. 4 işlem..

5640'ı önce 100'e böl, bölüm'ü al..
Kalanı 50'ye böl, bölümü al..
Kalanı 20'ye böl, bölümü al..
Kalanı 10'a böl, bölümü al..

Integer division yaptığın için kalan'ın bölen'den küçük olması tam da bizim istediğimiz bir durum aslında. C# ile hızlıca şu kodu yazdım senin için..

using System;

namespace ProgramConsole
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Kaç adet miktar girilecek?");
            int adet = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Değerleri giriniz:");
            int toplam = 0;
            for ( int i = 0; i < adet; i++ )
                toplam += Convert.ToInt32(Console.ReadLine());
            GetBankanot(toplam);
        }

        public static void GetBankanot(int toplam)
        {
            int yuzluk = toplam / 100;
            int kalan = toplam - (yuzluk * 100);
            int ellilik = kalan / 50;
            kalan -= ellilik * 50;
            int yirmilik = kalan / 20;
            kalan -= yirmilik * 20;
            int onluk = kalan / 10;
            Console.WriteLine();
            Console.WriteLine("Bankonotlar şu şekilde;");
            Console.WriteLine(string.Format("{0}x100, {1}x50, {2}x20, {3}x10", 
                yuzluk, ellilik, yirmilik, onluk));
        }
    }
}


Sonuç şu şekilde olur;

Kaç adet miktar girilecek?
4
Değerleri giriniz:
1250
1500
1780
1110

Bankonotlar şu şekilde;
56x100, 0x50, 2x20, 0x10










www.sonergonul.net





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb