ورود

نسخه کامل مشاهده نسخه کامل : توان رسانی به یک عدد و عدد های قبل از ان



mohammad1314
14-11-2012, 13:07
سلام.
میخوام یه عدد رو بگیرم که اسمش هم N هست . بعد به صورت زیر محاسبه کنه.

answer=(1)+(2^2)+(3^3)+(4^4)+....N^N
و دستوراتش ابتدایی باشه.
در ضمن توان رسانی نباید با علامت توان انجام بشه وبا ید با حلقه توان رسانی بشه.
ممنون

senaps
14-11-2012, 13:53
از ان به پایین بیاد یا از 1 به سمت ان باید بره؟!!
مثلا عدد 5 رو میده، 5 به توان چهار، بعد به توان سه بعد.......

به هر صورت، توان های بازگشتی باید استفاده بشن.... متاسفانه فرصت نوشتن نیست! ولی توی همین انجمن تابع(قبلی نوشتم توان اشتباه لپی بودش!!) بازگشتی به تعداد فراوان توضیح داده شده!!!

برای به توان رساندن هم از حلقه‌ی For استفاده کنین... به این شکل یه مقدار Result رو در نظر بگیرید و هر بار از I=1 رو شروع کنین به ضرب کردن تا مقدار I=N که مقدار N هر بار از تابع میاد و در مرحله‌ی بعدی یه دونه میره بالا تر!

mohammad1314
14-11-2012, 18:44
از یک تا n بره وبه این صورت :
1^1+2^2+3^3+...n^n
یعنی از یک شروع کنه عدد رو به توان خودش برسونه تا n که اون رو هم به توان خودش برسونه

senaps
14-11-2012, 21:28
یه حلقه‌ی دو لایه یا تو در تو بزن!!

مثلا
Int N;
int Result = 1;
(for in i = 0;i<N;i++)
{
for(int j=0;j<i;j++)
{
result = result*j;
}
}

البته فک کنم یه همچین ساختاری داره.... باید با شرط های حلقه کمی بازی کنی.... مثلا حلقه نباید از 0 شروع بشه!!! چون مقدار Result با 0 ضرب میشه و نتیجه‌اش هم میشه 0!!!! به همین دلیل، وقتی از یک شروع میشه، باید تا وقتی به بزرگ‌تر مساویش میرسه عملیات صورت بگیره که باعث بشه اون عدد خودش هم حلقه رو بگیردونه و بعد بیاد بیرون....

میگم یه خورده با شرط های حلقه ها بازی کنین درست میشه...
حالا نمی‌دونم تابع بازگشتی برای این جور گام حرکت هم کاربرد داره یا نه!! یادم نیست!