Çözüldü Doğal Sayılar - Programlama

Konusu 'Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK' forumundadır ve virs tarafından 16 Mart 2010 başlatılmıştır.

Yüklüyor...
  1. virs

    virs Yeni Üye

    Mesajlar:
    99
    Beğenileri:
    2
    İki basamaklı dört farklı doğal sayının toplamının alabileceği kaç farklı değer vardır? (345)
     
    : Fortran

  2. Benzer Konular: Doğal Sayılar
    Forum Başlık Tarih
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK İki Basamaklı Doğal Sayılarda Bölünebilme - Programlama 26 Aralık 2025
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Doğal Sayılar - İkinci Derece Denklemde Tam Kare Diskriminant 26 Kasım 2025
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Doğal Sayılar - Aritmetik Dizi - Programlama (Hamallık soruları hazırlamakta üzerimize yok!) 15 Mart 2025
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Doğal Sayılar 13 Mart 2025
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK Doğal Sayılarda Basamak Analizi - Programlama 24 Ocak 2025

  3. Bora

    Bora Yönetici Yönetici

    Mesajlar:
    2.136
    Beğenileri:
    575
    Meslek:
    Öğretmen
    Bu dört sayının toplamının alabileceği en büyük değer : 99+98+97+96 =390
    Bu dört sayının toplamının alabileceği en küçük değer : 10+11+12+13 =46
    Demek ki toplamlar 46 ile 390 arasında olabilir.
    46,47,48,...389,390 gibi
    390-46+1 = 345
    Honore bunu beğendi.
  4. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.053
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Bilgisayar programlamayla (kodlama) ilgilenen öğrenciler için Fortran uygulaması:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/sayila26.png

    Program:
    Kod:
    ! İki basamaklı dört farklı doğal sayının toplamının alabileceği kaç
    ! farklı değer vardır? (345)
    program ikibasamakli
    implicit none
    integer :: i,j,k,L=1,m,mx=0,n=0,nx,p,temp
    integer, allocatable :: toplam(:), res(:)
    real :: start, finish ! Çalışma süresinin tespiti için
    
    call cpu_time(start)
    
    do i=10,99; do j=10,99; do k=10,99; do m=10,99
    
    if ((i/=j).and.(i/=k).and.(i/=m).and.(j/=k).and.(j/=m).and.(k/=m)) then
       n=n+1 
    endif 
    
    enddo; enddo; enddo; enddo 
    
    ! n = 61.324.560
    
    allocate (toplam(n))
    
    do i=10,99; do j=10,99; do k=10,99; do m=10,99
    
    if ((i==j).or.(i==k) .or.(i==m).or.(j==k).or.(j==m).or. &
       (k==m)) cycle
    toplam(L) = i + j + k + m; L=L+1
    
    enddo; enddo; enddo; enddo
    
    ! L = n + 1 = 61.324.561
    
    allocate(res(size(toplam)))
    
    res(1) = toplam(1)
    
    do nx = 1,n
          if (any( res == toplam(nx) )) cycle
          mx = mx + 1
          res(mx) = toplam(nx)
    enddo
    
    print*,''
    write(*,fmt='(a,i3,a,/)') 'Farkli toplamlarin sayisi: ',mx,' adet. &
    & sayilar.txt dosyasina bakiniz.'
    
    do nx=1,mx-1
       do p=nx+1,mx
          if (res(nx) < res(p)) cycle
             temp=res(nx)
             res(nx)=res(p)
             res(p)=temp
        enddo
    enddo
    
    open (unit = 1, file = "Sayilar.txt")
    
    do nx=1,mx
       !print*,res(nx)
       write(1,10)nx,"    ",res(nx) 
    enddo
    
    deallocate (toplam, res)
    
    close(1)
    
    10 format(2(i3,a))
    
    call cpu_time(finish)
    print '("Gecen sure (bilgisayara gore degisir) = ",f6.2," saniye.")',finish-start
    
    end
    Not: Programın verdiği ve farklı sayıların toplamına ilişkin liste ektedir.

    Ekli Dosyalar:

Sayfayı Paylaş