-
توان ریاضی
ساده ترین راه برای حل این مشکل استفاده از کلاس ریاضی است. این راه حلی است که در بیشتر موارد از آن استفاده خواهید کرد.
کلاس Math شامل روش های مربوط به مثلثات، هندسه و سایر جنبه های ریاضیات است. در آن، متدها به صورت ثابت پیادهسازی میشوند، بنابراین میتوانید بلافاصله آنها را از طریق نام کلاس Math بدون ایجاد شی کلاس فراخوانی کنید.
قدرت به چه صورت است:
public static int pow(int value, int powValue) { return (int) Math.pow(value, powValue); }
ما مجبور بودیم از یک نوع cast (int) استفاده کنیم، زیرا این متد از کلاس Math مقداری از نوع double را برمی گرداند (آگومان ها نیز دو برابر هستند، اما یک نوع cast ضمنی در آنجا استفاده می شود).
و اکنون - یک جایزه: گزینه های اضافی.
-
مقدار مربع یک عدد
بیایید، شاید، با ساده ترین چیز شروع کنیم.
روش مربع بندی به این صورت نوشته می شود:
public static int pow(int value){ return value*value; }
تماس اصلی:
public static void main(String[] args) { System.out.println(Solution.pow(7)); }
این همه چیز است - هیچ چیز پیچیده یا غیر ضروری نیست.
-
عدد به قدرت
اما عدد مجذور آن چیزی نیست که ما نیاز داریم. اغلب در کارمان تا حدی به یک عدد نیاز داریم، بنابراین آنچه در ادامه میآید نسخه کمی پیچیدهتر است، اما با مقدار جاوا pow سفارشی:
public static void main(String[] args) { System.out.println(Solution.pow(7, 4)); } public static int pow(int value, int powValue) { int result = 1; for (int i = 1; i <= powValue; i++) { result = result * value; } return result; }
الگوریتم بسیار ساده است: ما نتیجه نقطه شروع را تنظیم می کنیم و سپس آن را در مقدار خود به تعداد دفعاتی که حلقه با powValue اجرا می شود ضرب می کنیم (تعداد دفعات powValue)
-
بازگشت
روش بعدی کمی عجیب تر خواهد بود، اما نه کمتر سرد.
بازگشت ویژگی است که به یک متد اجازه می دهد تا خود را فراخوانی کند. در جاوا، چنین مکانیزمی وجود دارد و بر این اساس، چنین روش هایی بازگشتی نامیده می شوند.
بسیاری از مسائل الگوریتمی، اگر نگوییم همه، می توانند به صورت بازگشتی حل شوند. این مورد نیز از این قاعده مستثنی نخواهد بود، بنابراین بیایید نگاهی بیندازیم که چگونه می توانید یک عدد را به یک توان خاص به صورت بازگشتی افزایش دهید:
public static int pow(int value, int powValue) { if (powValue == 1) { return value; } else { return value * pow(value, powValue - 1); } }
همانطور که می بینیم دو مورد داریم:
- شرط خروج از بازگشت، یا به عبارت دیگر، زمانی که مقدار درجه ما به یک برسد، شروع به پرتاب شدن به عقب خواهیم کرد.
- خود مکانیسم برای ضرب مقدار در نتیجه فراخوانی روش مشابه، اما با powValue - 1.
خوب، اکنون زمان آن است که به روش های تنبل تر، یعنی روش های "خارج از جعبه" نگاه کنیم.
-
BigInteger
هدف اصلی کلاس BigInteger ذخیره اعداد صحیح با اندازه دلخواه است، اما در عین حال دارای روش های حسابی مختلفی است که به شما امکان می دهد با این اعداد بزرگ (یا نه چندان بزرگ) کار کنید.
در این مقاله می توانید اطلاعات بیشتری در مورد BigInteger بخوانید .
بنابراین، نمایی با استفاده از BigInteger در جاوا چگونه خواهد بود؟
public static int pow(int value, int powValue) { BigInteger a = new BigInteger(String.valueOf(value)); return a.pow(powValue).intValue(); }
خیلی ساده و بدون هیچ مشکلی، اینطور نیست؟
Эллеонора Керри
مرحله
چگونه در جاوا توانمند شویم
سلام دنیا! گوگل کردن چیزی یا درخواست کمک در یک انجمن حتی برای یک برنامه نویس باتجربه امری رایج است. اما موضوعاتی در حال توسعه هستند که آنقدر ابتدایی و ساده هستند که حتی یک مبتدی سبز نیز باید آنها را بداند. و اینجا یکی از آن موضوعات است. امروز در مورد نحوه انجام قدرت در جاوا صحبت خواهیم کرد. بیایید برای لحظه ای تصور کنیم که به شما وظیفه ای داده شده است: یک عدد را تا حدی مشخص کنید. بسیار ساده به نظر می رسد، اما چگونه می توان راه حل را پیاده سازی کرد؟ بیایید به رایج ترین روش و چندین جایگزین نگاه کنیم. و قبل از اینکه به حلها بپردازیم، بیایید ابتدا به یاد بیاوریم که افزایش یک عدد به توان چیست: افزایش به توان عملی است که در آن یک عدد در خودش چندین بار ضرب میشود. عددی که ضرب می شود را مبنا و به تعداد دفعاتی که ضرب می شود توان می گویند. خوب، نتیجه این خود ضربی پایه، توان نامیده می شود. به عنوان مثال، برای 8 آن 2 به توان سوم است، زیرا 2x2x2=8 است. بالا بردن یک عدد به توان دوم نشان می دهد که ما آن را دو برابر می کنیم و قاعدتاً این توان را توان مربع می نامند. یعنی 4 مربع = 4x4 = 16. بنابراین، ما حافظه خود را تازه کرده ایم و اکنون مستقیماً به روش های استفاده از pow در جاوا می رویم - روشی برای قدرت.
GO TO FULL VERSION