Olimpiada misollarini yechish usullari II- bosqich Muallif: Mengliyev Sh. Qo`shilgan sana: 2015-04-08 Olimpiada misollarini yechish usullari II – bosqich


Program L86; { To’g’ri bo’luvchilar soni}  uses


Download 43.84 Kb.
bet5/12
Sana24.04.2023
Hajmi43.84 Kb.
#1394008
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
олимпиада учун масалалар

Program L86; { To’g’ri bo’luvchilar soni} 
uses Crt;
var 
i, a, b, s : integer; 
Procedure math_divisor(n : integer; var s : integer); 
var 
d : integer; 
begin 
s := 0; 
for d := 1 to n div 2 do 
if n mod d = 0 then s := s + d 
end
begin 
write('1 dan katta bo’lgan oraliqning chap qismini kiriting '); readln(a); 
write('Oraliqning o’ng qismini kiriting '); readln(b); 
for i := a to b do 
begin 
math_divisor(i, s); 
write(i 'sonining to’g’ri bo’luvchilari yig’indisi’,); 
writeln(‘teng’, s) 
end 
end.
87-misoln natural soni bo’luvchilar soni toq bo’lgandagina aniq kvadrat hisoblanadi. Isbotlang.
Program L87; { Aniq kvadrat va bo’luvchilar soni }
uses Crt; 
var 
i, n, k : integer; 
Procedure number_division(n : integer; var k : integer); 
var 
d : integer; 
begin 
k := 0; 
for d := 1 to n div 2 do 
if n mod d = 0 then k := k + 1; 
k := k + 1 
end
begin 
write('Oraliqning o’ng qismini kiriting '); readln(n); 
for i := 1 to n do 
begin 
write( i*i, ' soning bo’luvchilar soni= '); 
number_division(i*i, k);
write(k); 
if k mod 2 <> 0 then writeln(' – toq son') 
else writeln(' – juft son') 
end 
end.
88-misol. Kitob betlarini nomerlash. Kitobdagi barcha betlarini nomerlash uchun nechta raqam kerak bo’lishini aniqlovchi dastur tuzing. 
Yechish
Matematik yechimni xususiy misolda ko’rib chiqamiz, so’ngra esa umumiy xulosa chiqaramiz. 
Bizga 357 ta betni nomerlash uchun kerak bo’ladigan raqamlar sonini aniqlash zarur bo’lsin. 
Mulohazalar quyidagichadir: bir xonali raqamlar 9 ta, demak ular 9 betni nomerlashadi; ikki xonali sonlar 90 ta - ular 90 ta betni nomerlashadi va 90 . 2 = 180 ta raqamdan foydalanishadi; uch xonali sonlar 900 ta - ular 900 ta betni nomerlab 2700 ta raqamdan foydalanishadi. Demak, berilgan 357 ta betni nomerlash uchun barcha bir xonali va ikki xonali sonlar va uch xonalilarning ma’lum bir qismi kerak bo’ladi. Nechta uch xonali son kerak bo’lishini aniqlash uchun berilgan sondan “ishlatilgan” bir xonali va ikki xonali sonlarni ayirib tashlash kerak: 357 - (9 + 90) = 258. 
Shunday qilib, bizga hammasi bo’lib shuncha raqam kerak bo’ladi: 9*1=9 90*2=180 258*3=774 .....

. . . . . . . . . . . 


Jami: 9 + 180 + 774 = 963 raqam. 
Endi mulohazalarimizni umumlashtiramiz. raqamdan iborat nbetlar soni berilgan bo’lsin. U holda nomerlash uchun quyidagi raqamlar kerak bo’ladi:
1 - xonalilarga; kerak bo’ladiganlari: 9 x 1 = 9 ta raqam
2 - xonalilarga; 90 x2 = 180 ta raqam; 
3 - xonalilarga; 900x3 = 2700 ta raqam;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
c-1 -xonalilarga; 9....0 . (c-1) . . . ta raqam, 
huddi 357 ta betni nomerlashda uch xonalilarning ma’lum bir qismigina kerak bo’lganligi kabi, c-xonali sonni yozish uchun kerak bo’ladigan raqamlarning hammasi ko’plik qiladi.
c-xonali sonni yozish uchun qancha raqamlar kerak bo’lishini aniqlash maqsadida berilgan sondan ishlatilib bo’lingan bir, ikki,
n-(9+90+900+9.....0) uch va h.k,. c-1 xonalilarning raqamlarini ayirib tashlash kerak: so’ngra olingan natijani sonning xonasi - c ga ko’paytirish kerak. Sarf bo’lgan raqamlarni qo’shib, biz yakuniy qiymatga ega bo’lamiz. 
Ushbu mulohazalar asosida dastur tuzib ko’ramiz. 
Avvalambor, kiritilgan betlar sonida nechta raqam borligini aniqlovchi prosedurani tuzaylik. Bunday dasturga biz oldin ham duch kelganmiz:


Download 43.84 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling