PDA

View Full Version : کد نویسیم چه مشکلی داره؟



DELTANG_Programmer
جمعه 10 آذر 1391, 13:11 عصر
سلام دوستان ، می خوام یه برنامه بنویسم که n را دریافت سری زیر را محاسبه کند:

sum=1+3/2! +3/3!+4/4!+...+n/n!
#include "stdafx.h"
#include<iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int n,f,sum;
cout<<"n ra vared kon: ";
cin>>n;
while (n>0)
{
f=1;
for(int i=n; i>0; i--)
f=f*n;
sum=sum+(n/f);
}
cout<<"sum= "<<sum;
return 0;
}

omidshaman
جمعه 10 آذر 1391, 16:34 عصر
1تو محاسبه فاکتوریل اشتباه داری باید بزاری f*i
2_ ا sum باید Float یا double باشه
3 n/f تو این سوال شما همش 0 میشه باید بزاری

sum=sum+float(n)/f;
4_یک
n-- داخل While باید اضافه بشه
5_توی اون دنباله ای که گذاشتی از 2 شروع میشه n پس اخر کار باید یک واحد sum رو کم کنی یا توی while بزاری n>1

DELTANG_Programmer
شنبه 11 آذر 1391, 07:39 صبح
1تو محاسبه فاکتوریل اشتباه داری باید بزاری f*i
2_ ا sum باید Float یا double باشه
3 n/f تو این سوال شما همش 0 میشه باید بزاری

sum=sum+float(n)/f;
4_یک
n-- داخل While باید اضافه بشه
5_توی اون دنباله ای که گذاشتی از 2 شروع میشه n پس اخر کار باید یک واحد sum رو کم کنی یا توی while بزاری n>1

سلام دوست عزیز منظورتون این بود:
#include "stdafx.h"
#include<iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int n,f;
float sum;
cout<<"n ra vared kon: ";
cin>>n;
while (n>1)
{
n--;
f=1;
for(int i=n; i>0; i--)
f=f*i;

sum=sum+float(n)/f;

}
cout<<"sum= "<<sum;
return 0;
}

omidshaman
شنبه 11 آذر 1391, 09:49 صبح
خوب هیچی شما دنباله رو اشتباه نوشته بودین من فکر کردم از 2 شروع میشه الان نگاه کردم به نظر میرسه از 1 شروع میشه:) پس همون n>0 بزار در ضمن n-- هم باید اخر while بزاری یعنی خط 19
دنباله هم درستش اینه sum=1+2/2! +3/3!+4/4!+...+n/n!
نه sum=1+3/2! +3/3!+4/4!+...+n/n!