حاصل جمع N جمله ای سی پلاس پلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

حاصل جمع N جمله ای سی پلاس پلاس

0 امتیاز

سلام دوستان میخوام حاصل عبارت زیر بدست بیارم (به علامت های جمع و منها دقت کنید)

1!-2!+3!-4!+5!-.........n!=

 

سوال شده خرداد 4, 1393  بوسیله ی Mr.Mohammad (امتیاز 189)   17 17 24
دوباره تگ گذاری شد شهریور 5, 1393 بوسیله ی BlueBlade

3 پاسخ

+2 امتیاز
 
بهترین پاسخ

از اردر n هست الگوریتم زیر که در حد خودش خوبه

این الگوریتم با یه مقدار کار ریاضی به دست اومده و به طور کلی از این تساوی توش استفاده شده

(K+1)! - K! = K*K!

تو الگوریتم دوم هم از روش maryam استفاده کردم منتها به یه کم تغییرات

#include <iostream>

using namespace std;

int main()
{
    int n, fact=1, sum=0;
    cin>>n;
    for(int i=1; i*2<=n; i++)
    {
        sum+=(-1)*(2*i-1)*fact;
        fact*=2*i*(2*i+1);
    }
    if(n%2==1)
        sum+=fact;
    cout<<sum<<endl;
    return 0;
}
#include <iostream>

using namespace std;

int main()
{
    int n, fact=1, sum=0;
    int sign=1;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        fact*=i;
        sum+=sign*fact;
        sign*=-1;
    }
    cout<<sum<<endl;
    return 0;
}
پاسخ داده شده خرداد 5, 1393 بوسیله ی MaGaroos (امتیاز 658)   11 18 36
انتخاب شد خرداد 5, 1393 بوسیله ی Mr.Mohammad
+1 امتیاز
int fact(int n)
{
	int result=1;
	for(int i=1;i<=n;i++)
		result*=i;
	return result;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
cout<<"please enter n"<<endl;
cin>>n;
int sign=1;
int m=0;
for(int i=1;i<=n;i++)
{
	m+=sign*fact(i);
	sign*=-1;
}
cout<<"result is:"<<m<<endl;
return 0;
}

 

پاسخ داده شده خرداد 4, 1393 بوسیله ی maryam (امتیاز 338)   12 33 44
از اردر n^2 بده، زشته، اَخه...
از اردر n هم میشه نوشتش
+1 امتیاز
#include <iostream>
using namespace std;
int main(){
	int n=0;
	long last=-1,sum=0;
	cout << "Please Enter n value (n>0) : ";
	cin >> n;
	for (int i=1 ; i<=n ; i++){
		last*=-i;
		sum+=last;
	}
	if (sum <= 0)
		cout << "Type OverFlow" << endl;
	else
		cout << sum << endl;
	return 0;
}

عجب!!

پاسخ داده شده خرداد 6, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
...