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.
Do'stlaringiz bilan baham: |