PDA

View Full Version : سوال: فاکتوریل اعداد بزرگ



..ali..
یک شنبه 26 آذر 1391, 17:01 عصر
فاکتوریل اعداد بزرگ



کسی هست کمکم کنه برنامه فاکتوریل هست مردم نوشتم اما اجرا نمیشه کسی هست راهنماییم کنه؟؟؟؟کجاش اشکال داره؟؟

#include "stdAfx.h"
#include <iostream>
using namespace std;
void main()
{
long int d[6][1500],n,i,zarb,b=0,j,radif=0,cont,ab,m=0;
for(i=0;i<6;i++)
for(j=0;j<1500;j++)
d[i][j]=0;
cin>>n;
zarb=n*(n-1);
for(i=1500;zarb=!1;i--)
{
d[5][i]=zarb%10;
zarb=zarb/10;
b++;
}
n=n-2;
ab=n;
while(n=!1)
{
while(ab=!1)
{
cont=ab%10;
for(i=1500;i>=b;i--)
{
j=1500-radif;
d[radif][j]=cont*d[5][j];
j--;
}
radif++;
ab=ab/10;
}
for(j=1500;j>i+1;j--)
{
d[5][j]=(d[0][j]+d[1][j]+d[2][j]+d[3][j]+d[4][j])%10;
d[5][j]=(d[0][j]+d[1][j]+d[2][j]+d[3][j]+d[4][j])/10;
}
n=n-1;
}
for(;i+1<1500;i++)
cout<<d[5][j];
cin.get();
cin.get();
}

omidshaman
یک شنبه 26 آذر 1391, 20:26 عصر
درست اسم گزاری کن راحت می فهمی کجاش اشتباهه
d,n,i,ab,m,c,b !! یکی 2 تا هم کلا اضافه تعریف کردین!!
خط 12 اشتباهه ارایه شما 1500 عضو داره سطرش پس نمی تونین حلقه for رو از 1500 شروع کنین! البته تمام حلقه ها از 1500 شروع شدن که درست نیست!
void main هم که اکثر کمپایلر ها گیر میدن بهش
بعد این i هم که همیشه 1500 میشه پس خط 34 به بعد اشتباهن!
حالا دلیل این که i عوض نمیشه بر می گرده به خظ 20 و 22 که جفتشون اشتباهن!
باید باشن


while(n!=1)
while(ab!=1)


a=!1 ->>> a=(!1) ->>>>a=0
و یکسری ایرادات دیگه...