PDA

View Full Version : دستور فاكتوريل ودستور عدد تام



sogolhedayatmanesh
پنج شنبه 23 مهر 1388, 21:37 عصر
سلام من دستورات زير رو تريس كردم در ظاهر درسته اما موقع اجرا خروجي درست بهم نمي ده مي شه كمكم كنيد؟؟؟؟؟


مي شه سريع به من جواب بديد ممنون


دستور زير خروجي فوق رو مي ده :

1+((x^2)/(2!))+((x^3)/(3!))+((x^4)/(4!))+...+((x^n)/(n!))



#include<iostream.h>
#include<stdio.h>
main()
{
int x,f;
float t,n;
cin>>x;
for(int i=2;i<=x;i++)
f=(i+1)*(i+2);
t=i/f;
n=t+1;
cout<<n;
}



دستور زير بدست اوردن عدد تام است
عدد تام عددي است كه با مجموع مقسوم عليه ها ي خودش برابر باشد


مثال 1+2+3=6 (1-2-3) مقسوم عليهاي عدد 6





#include<iostream.h>
#include<stdio.h>
main()
{
int tam,m;
cin>>tam;
for(int i=1;i<tam;i++)
if (tam%i==0)
m=m+i;
if(m==tam)
cout<<"yessssssssssssssssssss";
if (m!=tam)
cout<<"no";
}





توليد عددهاي تام بين 1000-3







#include<iostream.h>
#include<stdio.h>
main()
{
int m;
for(int j=3;j<=1000;j++)
for(int i= 1;i<j;i++)
if (j%i==0)
m+=i;
if(m==j)
cout<<j;
}

ali zi zeperto
جمعه 24 مهر 1388, 10:10 صبح
تو دوتا برنامه آخری شما به متغیر m مقدار اولیه ندادی.
بعدیش هم مشکلش همینه.

rezasafdari
جمعه 24 مهر 1388, 10:16 صبح
سلام
2 تا مشكل ديگه هم داره ....
اوليش اينكه از اعلان ها استفاده نميكنيد و به همين خاطره كه cout و cin خونده نميشه ...



using name space std;



دوميش هم عدم استفاده از بلاك ها براي حلقه ي for ... به اين ترتيب فقط خط اول بعد از حلقه تكرار ميشه ....
براي تكرار چند دستور بايد تمام دستورات بعد از for داخل بلاك قرار بگيرند :



for(int i=1;i<tam;i++)
{
if (tam%i==0)
m=m+i;
}


----------
سورس اصلاح شده ي اعداد تام :



#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int tam,m,t;
m=0;
cin>>tam;
for(int i=1;i<tam;i++)
{
if (tam%i==0)
m=m+i;
}
if(m==tam)
cout<<"yessssssssssssssssssss";
if (m!=tam)
cout<<"no";
system("PAUSE");
return 0;
}


--
پ . ن 1 : دست بوس استادتون باشيد كه برنامه سازي 1 رو با ‍C++‎‎ شروع كردند ...
پ. ن 2 : عجيبه كه سر فايل stdio.h رو معرفي كرده ، اما using ها رو نه !؟
-
مويد باشيد

ali zi zeperto
جمعه 24 مهر 1388, 14:18 عصر
دوميش هم عدم استفاده از بلاك ها براي حلقه ي for ... به اين ترتيب فقط خط اول بعد از حلقه تكرار ميشه ....
براي تكرار چند دستور بايد تمام دستورات بعد از for داخل بلاك قرار بگيرند :
وقتی بدنه for , if بیشتر از یه دستور ندارن الزامی برای گذاشتن { , } نیست.
غیر از این مشکل دیگه خطایی نیست.البته اگر از فضای نام استفاده کنند بهتر هم هست ولی باز هم بدون اون اجرا میشه.سرفایلشون رو کامل ذکر کردن.