1. for va foreach sikllari


Ikkita natural son berilgan. Qaysi birining raqamlari ko’p? Funksiya tuzing


Download 65.67 Kb.
bet34/49
Sana19.06.2023
Hajmi65.67 Kb.
#1625730
1   ...   30   31   32   33   34   35   36   37   ...   49
Bog'liq
дəстурлеу жуаплары100

56. Ikkita natural son berilgan. Qaysi birining raqamlari ko’p? Funksiya tuzing
Ikkita son berilgan, bu sonlar orasida raqamlarining ko'p o'zaro qiyoslashni talab qilayotgan funksiya tuzishimiz kerak.
Quyidagi C++ kodida, ikkita sonning raqamlari ko'p bo'lsa 'true' qiymatini, aks holda 'false' qiymatini qaytaruvchi funksiya tuzilgan:
#include
using namespace std;
bool ko'p_raqamlar(int a, int b) {
bool result = false;
int a_digits[10] = {0};
int b_digits[10] = {0};
while (a > 0) {
a_digits[a % 10]++;
a /= 10;
}
while (b > 0) {
b_digits[b % 10]++;
b /= 10;
}
for (int i = 0; i < 10; i++) {
if (a_digits[i] > 0 && b_digits[i] > 0) {
result = true;
break;
}
}
return result;
}
int main() {
int x, y;
cout << "Ikkita son kiriting: ";
cin >> x >> y;
if (ko'p_raqamlar(x, y)) {
cout << "Raqamlari ko'p\n";
} else {
cout << "Raqamlari bir xil emas\n";
} return 0;
}
Ushbu kod dasturi foydalanuvchidan ikkita sonni kiritishni so'raydi va ko'p_raqamlar() funksiyasini chaqiradi. Bu funksiya parameter sifatida ikkita sonni qabul qiladi va ularning raqamlari ko'p bo'lsa true, aks holda false qiymatini qaytaradi.
Funksiyada, a va b sonlari o'zaro solishtirish uchun ularga ajratilgan raqamlar to'plamlari hisoblanadi va ularning mos elementlari borligi tekshiriladi. Shuningdek, funksiya qaytariladigan qiymat uchun result o'zgaruvchisi false qiymatiga ega qilinadi. Raqamlarning bir xil ekanligi aniqlanib bo'lsa, result o'zgaruvchisi true qiymatiga o'zgartiriladi.
57. a va b sonlari berilgan. Ularning EKUK ini aniqlovchi funksiya tuzing.
EKUK (Eng kichik umumiy ko'p hisoblash) ikkita sonning eng kichik bo'lmagan umumiy ko'p hisoblashidir. EKUK ni topish uchun quyidagi C++ funksiyasi tuziladi:
C++
#include
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int a, b;
cout << "Enter two positive integers: ";
cin >> a >> b;
cout << "The LCM of " << a << " and " << b << " is " << lcm(a, b) << endl;
return 0;
}
Bu kodda, gcd funksiyasi ikki sonning eng kichik bo'lmagan umumiy ko'p hisoblashi uchun yordamchi funksiya hisoblanadi. lcm funksiyasi esa a va b sonlari uchun EKUK qiymatini hisoblaydi.
Asosiy funksiyada foydalanuvchidan ikki son kiritishi so'raladi va lcm funksiyasini chaqiradi. Natijani konsolga chiqaradi.

Download 65.67 Kb.

Do'stlaringiz bilan baham:
1   ...   30   31   32   33   34   35   36   37   ...   49




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