ədədini -a bölürük, nəticə sıfır olana qədər. Hər bir bölünmə nəticəsinin son rəqəmləri başlanğıc ədədin rəqəmlərinə uyğundur. Bu rəqəmlərin ən böyük qiymətini müəyyən edirik.
Alqoritmin reallaşması
Giriş dəyəri olan -i oxuyuruq.
scanf("%lld", &n);dəyişənində ədədinin ən böyük rəqəmini tapırıq.
res = 0;sayının bütün rəqəmlərini təkrarlayırıq. Bu məqsədlə, ardıcıl olaraq -i -a bölürük və onun sonuncu rəqəmini çıxarırıq d = n \% 10. Bütün bu rəqəmlərin arasında ən böyük qiyməti müəyyən edirik.
while (n > 0)
{
d = n % 10;
if (d > res) res = d;
n = n / 10;
}Cavabı çıxarırıq.
printf("%d\n", res);Java reallaşması
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
long n = con.nextLong();
long res = 0;
while (n > 0)
{
long d = n % 10;
if (d > res) res = d;
n = n / 10;
}
System.out.println(res);
con.close();
}
}Python reallaşması
Giriş ədədini sətir kimi oxuyuruq.
s = input()max() funksiyası sətirdəki ən böyük simvolu qaytarır.
Əgər sətir yalnız rəqəmlərdən ibarətdirsə, max() ən böyük rəqəmi tapır (məsələn, "" üçün nəticə "").
Əgər sətir hərflərdən ibarətdirsə, simvolların leksikoqrafik ardıcıllığı müqayisə olunur.
Cavabı çıxarırıq.
print(max(s))