19 Şubat 2016 Cuma

A ən böyük və ən kiçik

Üçrəqəmli tam ədəd verilmişdir. Bu ədədin rəqəmlərindən düzəldilmiş ən böyük və ən kiçik ədədlərin fərqinin həmin ədədin özünə hasilini tapın. Məsələn, verilmiş 315 ədədi üçün axtarılan ədəd 315 × (531 – 135) = 124740 olacaq.
Giriş verilənlərinin formatı
Üçrəqəmli tam N ədədi verilir.
Çıxış verilənlərinin formatı
Çıxışa bir ədəd – məsələnin cavabı verilir.


#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int n, a, b, c, k, h;
    cin>>n;
    a=n/100;
    b=(n/10)%10;
    c=n%10;
    if (a<b)
    swap (a, b);
    if (b<c)
    swap (b, c);
    if (a<b)
    swap (a, b);
    k=100*a+10*b+c;
    swap (a, c);
    h=100*a+10*b+c;
    cout<<n*(k-h)<<endl;
 
    return 0;
}

C08 Yerdəyişmə

N natural ədədi və N tam ədəddən ibarət massiv verilmişdir. Onun ilk minimal elemeti ilə sonuncu maksimal elementinin yerini dəyişdirin.
Giriş verilənlərinin formatı
Birinci sətirdə bir N (1 <= N <= 10000) natural ədədi verilir. İkinci sətirdə massivin elementləri – aralarında bir boşluq simvolu olmaqla N sayda tam ədəd verilir.
Çıxış verilənlərinin formatı
Birinci sətirdə N ədədi verilir. İkinci sətirdə yerdəyişmə nəticəsində alınan yeni massiv verilir.


#include <iostream>
#include <algorithm>
using namespace std;
int main ()
{
int a[10000],i;
int n,min,max,imin=0,imax=0;
cin>>n;
for (i=0;i<n;i++)
cin>>a[i];
min=a[0]; max=a[0];
for (i=1;i<n;i++)
{if (a[i]<min)
{min=a[i];
imin=i;}
else
if (a[i]>=max)
{max=a[i];
imax=i;}}
swap (a[imin],a[imax]);
cout<<n<<endl;
for (i=0;i<n-1;i++)
cout<<a[i]<<" ";
cout<<a[n-1]<<endl;
return 0;
}

Ən böyük rəqəm

N natural ədədi verilmişdir. Bu ədədin ən böyük rəqəmini tapın.
Giriş verilənlərinin formatı
Bir sətirdə N (0 < N <= 1018) ədədi verilir.
Çıxış verilənlərinin formatı
Çıxışa bir ədəd – məsələnin həlli verilir.

#include <iostream>
using namespace std;
int main()
{  
    long long n, m;
    cin>>n;
    m=n%10;
    while (n>0)
        
    {
          n/=10;
          if (n%10>m)
          m=n%10;
    }
    cout<<m<<endl;
    return 0;
}

Fibonacci series

#include <iostream>
 
using namespace std;
int main()
{
long int a[10000]={0},b[10000]={0};
int  fa=2, fb=2,i,j,n,m;
cin>>n;
a[0]=1; b[0]=1; m=1;
while(fa<n)
{for(i=0;i<m;i++)
a[i]+=b[i]; fa=fb+1;
for(i=1;i<m;i++)
{ a[i]+=a[i-1]/10;
a[i-1]%=10;}
if (a[m-1]>9)
{
   m++;
   a[m-1]=a[m-2]/10;
   a[m-2]%=10;
}
if(fa<n)
{for(i=0;i<m;i++)
b[i]+=a[i]; fb=fa+1;
 for(i=1;i<m;i++)
{ b[i]+=b[i-1]/10;
b[i-1]%=10;}
if (a[m-1]>9)
{
   m++;
   b[m-1]=b[m-2]/10;
   b[m-2]%=10;
}     }}   
  if(fa==n)        
{for (i=m-1; i>=0; i--)
cout<<a[i];
cout<<endl;}
else
{for (i=m-1; i>=0; i--)
cout<<b[i];
cout<<endl;}
 
return 0;
}

18 Şubat 2016 Perşembe

A52 Robototexnika dərsində

A52 Robototexnika dərsində  (A52 На уроке роботехники) (On the A52 robotics lesson)

Russian
На уроке роботехники Алпай собрал робота. Робот может двигаться по сторонам квадратной сетки и по диагоналям квадрата (узлы сетки имеют целые координаты, а стороны квадрата равны 1). Если робот находится в какой-то точке, то у него имеется 8 направлений движений, то есть в любой точке  у робота  имеется 8 возможных ходов. Вначале робот находится в точке с координатами (x1, y1) и он должен попасть в точку с координатами (x2, y2). Определите наименьшее количество шагов за которое робот сможет попасть в точку назначения.
Входные данные
В первой строке находится пара целых чисел x1, y1 (-109 ≤  x1, y1 ≤ 109) – исходное положение робота.
Во второй строке находится пара целых чисел x2, y2 (-109 ≤ x2, y2 ≤ 109) – конечное положение робота.
Выходные данные
Выведите целое число – наименьшее количество ходов, необходимое роботу, чтобы попасть в точку назначения.
Azerbaijan
Alpay ropototexnika dərsində robot yığdı. Robot kvadratlardan ibarət torun tərəfləri və diaqonalları boyunca hərəkət edə bilir (torun bəndlərinin – düyünlərinin koordinatları tam ədədlərdir, torun hər bir kvadratının tərəfi isə 1-ə bərabərdir). Robot hər hansı nöqtədən 8 istiqamətə hərəkət edə bilər, yəni istənilən nöqtədə robotun 8 mümkün gedişi var. Başlanğıcda robot (x1, y1) koordinatlı nöqtədədir və (x2, y2) koordinatlı nöqtəyə getməlidir. Robotun təyinat nöqtəsinə çatması üçün atacağı addımların minimal sayını müəyyənləşdirin.
Giriş verilənlərinin formatı
Birinci sətirdə aralarında boşluq simvolu olmaqla iki tam x1, y1 (-109 ≤  x1, y1 ≤ 109) ədədləri – robotun başlanğıc mövqeyi verilir.
İkinci sətirdə aralarında boşluq simvolu olmaqla iki tam x2, y2 (-109 ≤ x2, y2 ≤ 109) ədədləri – robotun son mövqeyi verilir.
Çıxış verilənlərinin formatı
Çıxışa bir tam ədəd – robotun təyinat nöqtəsinə çatması üçün atacağı addımların minimal sayı verilir.
(ПРИМЕР) (Nümunə)
Пример входных данных
2 1
5 2

1 2 5 1
Пример выхо
3


                      #include<iostream>
using namespace std;
int main ()
{
int d1,d2,x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
d1=x1-x2;
d2=y1-y2;
if(d1<0) d1=-d1;
if(d2<0) d2=-d2;
if(d1>d2) cout<<d1<<endl;
else cout<<d2<<endl;
return 0;
}
                                    

17 Şubat 2016 Çarşamba

A19 Sadə məsələ - tam ədədlər

A19 Sadə məsələ - tam ədədlər

(Azərbaycan)Beşrəqəmli ədəd verilib. Bu ədədin ilk iki rəqəminin cəmi ilə son iki rəqəminin cəminin fərqini hesablayın.
(Russian) Дано пятизначное число. Вычислить разность между суммами первых двух и последних двух цифр этого числа.
(English)Given a five-digit number. Calculate the difference between the sum of the first two and the last two digits of this number .
Nümunə  (Пример) (Example)
Пример входных данных
12345
99999
98765
Пример выходных данных
-6
0
6
Giriş verilənlərinə nümunə
12345
99999
98765
Çıxış verilənlərinə nümunə
-6
0
6

Example input
12345
99999
98765
Example output
-6
0
6
#include <iostream>
using namespace std;
int main()
{
    int a,b,d,e,s;
    
    
  long n;
  cin>>n;
a=n%10;
b=(n/10)%10;
  
d=(n/1000)%10;
e=(n/10000)%10;
s=(d+e)-(a+b);
cout<<s<<endl;    
      
   
    return 0;
}
                  
 
                                    

C14 Massivin bir mövqe sola sürüşdürülməsi

C14 Massivin bir mövqe sola sürüşdürülməsi

N natural ədədi və N tam ədəddən ibarət massiv verilmişdir. Onun elemntlərini dövri olaraq bir mövqe sola sürüşdürün (birinci element sonuncu element olur).
Giriş verilənlərinin formatı
Birinci sətirdə bir N (1 <= N <= 10000) natural ədədi verilir. İkinci sətirdə massivin elementləri – aralarında bir boşluq simvolu olmaqla N sayda tam ədəd verilir.
Çıxış verilənlərinin formatı
Birinci sətirdə N ədədi verilir. İkinci sətirdə sürüşdürmə nəticəsində alınan yeni massiv verilir.


Giriş verilənlərinə nümunə
10
0 1 2 3 4 5 6 7 8 9
Çıxış verilənlərinə nümunə
10
1 2 3 4 5 6 7 8 9 0
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,i,a[10001],min,max;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
cout<<n<<endl;
;
for(i=1;i<n;i++)
cout<<a[i]<<" ";
cout<<a[0]<<endl;
return 0;
}