Çözüldü Doğal Sayılarda Basamak Analizi - Programlama

Konusu 'Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK' forumundadır ve Honore tarafından 24 Ocak 2025 başlatılmıştır.

Yüklüyor...
  1. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    10.005
    Beğenileri:
    657
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Math Leaguge Sample High School Contest 2018-2019 çözümlü sorularından TYT uyarlaması:

    Üç basamaklı bir sayının rakamlarının yer değiştirilmesiyle elde edilecek sayıyla arasındaki en büyük fark kaçtır?

    A) 890
    B) 891
    C) 892
    D) 893
    E) 894


    (xyz) sayısı 100x + 10y + z
    (zyx) sayısı 100z + 10y + x
    aralarındaki fark 100x + 10y + z - (100z + 10y + x) = 99(x - z)
    maksium fark için x = 9 ve z = 0 alınıp 99(9 - 0) = 891.

    Sorunun Aslı ve Çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/mathle10.png
    https://www.mathleague.com/ml-files/hs_contest_5_2018-19.pdf
    (İlk soru, çözüm son sayfada)

    Bilgisayar Programlamayla İlgilenen Öğrenciler İçin Fortran Çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/mathle11.png

    Program:
    Kod:
    ! A program written by https://app.codeconvert.ai/code-generator?outputLang=Fortran
    ! to find the largest difference between a three-digit number and the number
    ! obtained by rearranging the digits of that three-digit number.
    
    ! The two unused variables of the original program have been removed and
    ! "write" function has been used by me instead of "print" function.
    
    ! https://www.mathleague.com/ml-files/hs_contest_5_2018-19.pdf (Question 5.1)
    ! The comments by the AI are at the end of the program/
    program largest_difference
        implicit none
        integer :: max_diff, current_diff
        integer :: i, j, k
        integer :: original, rearranged
     
        max_diff = 0
    
        do i = 1, 9
            do j = 0, 9
                do k = 0, 9
                    original = i*100 + j*10 + k
                   
                    ! Find all possible rearrangements and calculate differences
                    ! ijk
                    rearranged = i*100 + j*10 + k
                    current_diff = abs(original - rearranged)
                    max_diff = max(max_diff, current_diff)
                   
                    ! ikj
                    rearranged = i*100 + k*10 + j
                    current_diff = abs(original - rearranged)
                    max_diff = max(max_diff, current_diff)
                   
                    ! jik
                    rearranged = j*100 + i*10 + k
                    current_diff = abs(original - rearranged)
                    max_diff = max(max_diff, current_diff)
                   
                    ! jki
                    rearranged = j*100 + k*10 + i
                    current_diff = abs(original - rearranged)
                    max_diff = max(max_diff, current_diff)
                   
                    ! kij
                    rearranged = k*100 + i*10 + j
                    current_diff = abs(original - rearranged)
                    max_diff = max(max_diff, current_diff)
                   
                    ! kji
                    rearranged = k*100 + j*10 + i
                    current_diff = abs(original - rearranged)
                    max_diff = max(max_diff, current_diff)
                end do
            end do
        end do
    
        write(6, 10)"The largest possible difference between a three-digit number"
        write(6,15)"and its rearrangement is: ", max_diff
    
    10 format(a)
    15 format(a, i3)
    
    end program largest_difference
    ! The program systematically checks all possible three-digit numbers
    ! (from 100 to 999) and their rearrangements.
    
    ! For each three-digit number:
    ! It generates all possible rearrangements of its digits (6 possibilities
    ! for distinct digits)
    ! Calculates the absolute difference between the original number and each
    ! rearrangement
    ! Keeps track of the maximum difference found
    
    ! Key features:
    ! Uses nested loops to generate all three-digit numbers
    ! First digit (i) starts from 1 to ensure three-digit numbers
    ! Subsequent digits (j,k) start from 0
    ! Uses the abs() function to handle cases where the rearrangement might be
    ! smaller than the original number
    
    ! The program is efficient as it:
    ! Directly generates three-digit numbers without converting strings
    ! Calculates differences without array storage
    ! Uses straightforward arithmetic operations
     
    : Fortran

  2. Benzer Konular: Doğal Sayılarda
    Forum Başlık Tarih
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK 4 Basamaklı Doğal Sayılarda Sıralama - Programlama 19 Temmuz 2024
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Beş Basamaklı Doğal Sayılarda 10'la Bölümden Kalan (Akıldan yapılacak) 13 Mart 2024
    Doğal Sayılar,Tam Sayılar,Bölme Bölünebilme,EBOB-EKOK İki Basamaklı Pozitif Doğal Sayılarda Basamak Analizi 31 Aralık 2023
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Doğal Sayılarda Basamak Analizi 1 Ekim 2023
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Doğal Sayılarda Çarpanların Minimum Toplamı 30 Mart 2023

Sayfayı Paylaş