سلام و وقت بخیر به همه دوستان
من می خوام سوال الگوریتمی کوئرا رو مثل سوال زیر رو با js حل کنم :
https://quera.org/problemset/649/
ولی نمی دونم چطور کد رو بنویسم که ورودی ها رو از داوری خودکار بگیره و خروجی بده و سوال حل بشه ، خیلی ممنون میشم اگر کسی تجربه حل سوالات الگوریتمی رو با js داره بهم کمک کنه .
تشکر
ورودی خروجی گرفتن در جاوا اسکریپت خالی با اونی که تو مرورگر استفاده میکنیم فرق داره
برای گرفتن ورودی از readline()
و برای خروجی از print()
استفاده کن
قسمت داور خودکار رو متوجه نشدم ( شاید چون با کورا آشنایی ندارم ). ولی در کل :
در جاوااسکریپت بستگی داره شما برنامه رو با چی بنویسید مثلا میتونید با nodejs بنویسید. به راحتی ورودی در command line بدید و خروجی رو بگیرید .
>cli> node app.js a b
به نظرم روش خوبی هستش. نوشتن کدش هم که سخت نیست داخل گوگل سرچ کنید
ورودی خروجی گرفتن در جاوا اسکریپت خالی با اونی که تو مرورگر استفاده میکنیم فرق داره
برای گرفتن ورودی از readline()
و برای خروجی از print()
استفاده کن
سلام، برای حل سوالات الگوریتمی با JavaScript بهترین راه حل استفاده از توابع ریاضی و دستورات شرطی میباشد. در ادامه، به شما نحوه حل سوال الگوریتمی کوئرا که در لینکی که در پرسش داده شد، داده شده است را با JavaScript توضیح میدهیم:
دریافت عدد n:
ابتدا تعداد عددهایی که باید دریافت شود (n) را دریافت میکنیم. برای این کار میتوان از دستور prompt() استفاده کرد. مثال:
let n = prompt("Enter the number of inputs: ");
دریافت n عدد:
پس از دریافت تعداد n، باید n عدد را دریافت کنیم. برای دریافت این عددها، از حلقه for به صورت زیر استفاده میکنیم:
let nums = [];
for (let i = 0; i < n; i++) {
nums.push(parseInt(prompt(`Enter the number #${i+1}: `)));
}
پیدا کردن با بزرگترین تفاضل بین اعداد:
برای پیدا کردن با بزرگترین تفاضل بین اعداد، ابتدا باید عددهای ورودی را به صورت صعودی مرتب کرد. برای اینکار، میتوان از دستور sort() استفاده کرد:
nums.sort(function(a, b){return a-b});
سپس برای پیدا کردن با بزرگترین تفاضل بین اعداد، از یک حلقه for به صورت زیر استفاده میکنیم:
let maxDiff = 0;
for (let i = 0; i < nums.length - 1; i++) {
let diff = nums[i+1] - nums[i];
if (diff > maxDiff) {
maxDiff = diff;
}
}
نمایش جواب: در این مرحله، با بزرگترین تفاضل را در قطعه کد بالا گرفتیم. حالا برای نمایش جواب، از دستور alert() استفاده میکنیم. مثال:
alert(`The maximum difference is ${maxDiff}`);
کد نهایی برای حل این سوال، به صورت کامل به صورت زیر است:
let n = prompt("Enter the number of inputs: ");
let nums = [];
for (let i = 0; i < n; i++) {
nums.push(parseInt(prompt(`Enter the number #${i+1}: `)));
}
nums.sort(function(a, b){return a-b});
let maxDiff = 0;
for (let i = 0; i < nums.length - 1; i++) {
let diff = nums[i+1] - nums[i];
if (diff > maxDiff) {
maxDiff = diff;
}
}
alert(`The maximum difference is ${maxDiff}`);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟