Savol: Quyidagi masalani algoritmni toliq qurish bosqichlari boyicha yeching
Masalaning qoyilishi. Ikkita butun musbat a va b sonlar berilgan. Ularning eng katta umumiy boluvchisini topish talab qilinadi. Yani, eng katta butun musbat son topish kerakki, unga a va b ni bolganda butun son chiqsin.
Modelni qurish.
Ikkita sonning Eng katta umumiy boluvchisi deb EKUB shu sonlar bolinadigan eng katta butun songa aytiladi:
Masalan 12 va 16
12 {1,2,3,4,6,12}
16 {1,2,4,8, 16}
12 va 16 sonlari bolinadigan eng katta son bu 4 ga teng.
Algoritmni ishlab chiqish.
Boshlash;
m ni n ga bolamiz, qoldiq r ga teng bolsin;
Agar r=0 unda n-natija; 5 oting;
m:=n; n:=r; 2 oting;
tamom.
Algoritmni togriligini tekshirish
Shu algoritmni tadqiq qilib koraylik. m=119, n=544 deb qabul qilaylik. Ikkinchi qadamdan boshlaymiz. Algoritmga binoan bolish natijasini nolga teng deb hisoblaymiz va r ga 119 ni taminlaymiz, keyin 3-qadamga otamiz. R nolga teng bolmaganligi uchun, hech nima qilmaymiz va 4-qadamga otamiz. Bu yerda m ga 544 ni, n ga 119 ni taminlaymiz. Umuman, ravshan boldiki, mAmaliy qism
Algoritmni amalga oshirish. (dastur).
#include
using namespace std;
int main()
{
int m,n,r;
cin>>m>>n;
while(n!=0)
{ r=m%n;
m=n;
n=r;
}
cout<}
Dasturni tekshirish (Yechim olish)
{
int m,n,r;
cout<<"m va n ozgaruvchilarni kiriting :";
cin>>m>>n;
while(n!=0)
{ r=m%n; //qoldiqni hisoblash
m=n; //orin almashtirish
n=r;
}
cout<<"EKUB ";
cout<}
Dastur natijasi:
Do'stlaringiz bilan baham: |