Ўзбекистон республикаси ташқи ишлар вазирлиги


Download 0.59 Mb.
Pdf ko'rish
bet38/47
Sana25.10.2023
Hajmi0.59 Mb.
#1721980
1   ...   34   35   36   37   38   39   40   41   ...   47
Bog'liq
Java Sattorov 1-qism

7.4-misol. Faraz qilaylik, 10 lampochka ketma-ket joylashgan va 1 dan 
10 gacha nomerlangan. Boshlang‗ich holatda barcha lampochkalar o‗chgan 
bo‗lsin. Ikkita butun son (2 va 3) berilgan. 2 soni nomerlari 2 ga karrali 
bo‗lgan lampochkalar o‗chgan bo‗lsa, yoqishni va aksincha yoniq bo‗lsa, 
o‗chirishni bildiradi. Xuddi shuningdek, 3 soni ham nomerlari 3 ga karrali 
bo‗lgan lampochkalar o‗chgan bo‗lsa, yoqishni va aksincha, yoniq bo‗lsa, 
o‗chirishni bildiradi. Oxirida nechta lampochka yoniq qolishini topish kerak. 
Lampochkalarning 
nomerlari 









10 
Holati 
o‘ 
o‘ 
o‘ 
o‘ o‘ o‘ o‘ o‘ o‘ o‘ 
o‘ 
yo 
o‘ yo o‘ yo o‘ yo o‘ yo 
o‘ 
yo 
yo 
yo o‘ o‘ o‘ yo yo yo 
Bu jadvalda yo- yoniq, o‘- o‗chgan. Jadvaldan ko‗rinib turibdiki, yoniq 
lampochkalar 6 ta. 
Endi masalani umumiy holda ta‘riflaylik. N ta lampochka berilgan va 
ular 1 dan N gacha nomerlangan. Boshlang‗ich holatda barcha lampochkalar 
o‗chgan holatda. K ta butun (r
1
, r
2
, r
3
,..., r
k
) sonlar berilgan. r
i
(i=1,2,…K) 
sonlarning har biri ketma-ket nomerlari r
i
ga karrali bo‗lgan lampochkalarni 
agar ular o‗chgan bo‗lsa, yoqadi, va aksincha, agar ular yoniq bo‗lsa, 
o‗chiradi. Yoniq qolgan lampochkalar sonini topish kerak. Bu masalani 
quyidagicha yechish mumkin.
Faraz qilaylik, elementlari butun sonlar bo‗lgan N ta elementli A massiv 
berilgan bo‗lsin. Agar A[i]=0 bo‗lsa, u i - lampochkaning o‗chganligini yoki
A[i]=1 bo‗lsa, u i - lampochkaning yoniqligini bildirsin. Oxirida A[i]=1 
bo‗lganlarining sonini topish yetarli. Bu misolning programmasi quyidagicha 
bo‗lishi mumkin: 
package lampa; 
public class Main { 


62 
public static void main(String[] args) { 
int n, k, i, j, s; 
int r[] = {2, 3, 4, 8, 7}; 
byte A[] = new byte[5001]; 
n = 10; 
k = 2;// 10 lampochka, 2 ta son 
//Boshlang‗ich holatda barcha lampochkalar o‗chgan 
for (i = 0; i <= n; i++) A[i] = 0; 
for (j = 0; j < k; j++)
for (i = r[j]; i <= n; i += r[j]) // r[j] ga karralilar 
A[i] =(byte)( 1 - A[i]); //yoqish yoki o‗chirish 
s = 0; 
for (byte x : A) s += x; 
System.out.println("s=" + s); 
}} 
Bu programma juda sodda bo‗lishiga qaramay, juda katta N lar uchun 
ishlamasligi mumkin, chunki A massiv uchun xotiradan ko‗p joy talab etiladi. 

Download 0.59 Mb.

Do'stlaringiz bilan baham:
1   ...   34   35   36   37   38   39   40   41   ...   47




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