PDA

View Full Version : محاسبه مجموع سری اعداد ، بدون استفاده از حلقه



BOB
چهارشنبه 21 اردیبهشت 1384, 23:49 عصر
سلام

چند لحظه فکر کردن به این سوال ، برای رفع خستگی بد نیست.
الگوریتمی بنویسید که مجموع اعداد بین دو متغیر n و m را ، بدون استفاده از حلقه یا تکرار فرامین ، محاسبه کند. (n,m>0)
لطفا از جزوه‌های آمار و ریاضی استفاده نکنید چون این سوال واقعا آسونه.

موفق باشید

مهدی
جمعه 23 اردیبهشت 1384, 13:03 عصر
int f(int m,int n)
{
if(m==n) return m;
if(m>n) m^=n^=m^=n;

return m+f(m+1,n);
}
البته من فرض کردم خود m و n هم باید حساب شوند. اگر غیر از اینه از حاصل مقدار m+n رو باید کم کرد

اما حالا که دوباره فکر کیکنم فکر کنم منظورت این یکی بود:


if(n>m){
sum = ( n(n+1) ) / 2 - ( m(m+1) ) / 2
}else{
sum = ( m(m+1) ) / 2 - ( n(n+1) ) / 2
} :oops:

Delphi Skyline
شنبه 24 اردیبهشت 1384, 14:35 عصر
مشتکرم

BOB
شنبه 24 اردیبهشت 1384, 15:00 عصر
سلام

جوابش از این هم سادهتره ... و هیچ فرقی هم نمیکنه که m بزرگتر باشه یا n



(Abs(m-n)-1)*(m+n)/2

h_shirazee
یک شنبه 25 اردیبهشت 1384, 14:26 عصر
البته از توابع بازگشتی هم میشه استفاده کرد . اونجا دیگه حتی احتیاج به عملگر جمع هم نداریم

مهدی
یک شنبه 25 اردیبهشت 1384, 20:48 عصر
منظورت مثل اونی که من بالا نوشته بودمه؟ (تابع بازگشتی)

Mega7000
جمعه 11 فروردین 1385, 20:42 عصر
این راه هم جواب میده:


Fun(n,m) {

Return 1; If(n=1 & m=0)
else
((m-n)+1)*n+ return Fun(1,m-n);
}