star462
سه شنبه 10 اردیبهشت 1387, 21:34 عصر
سلام.من با كد زير تونستم مثلث خيام چاپ كنم ولي دو تا مشكل واسم بيش اومد اولي اينكه اعداد منفي چاپ ميشه كه من نميدونم چرا! دو اينكه وقتي اعداد دو رقمي ميشن يا منفي ديگه از نظم ترتيب در مياد و از شكل يه مثلث درست حسابي خارج ميشه! لطفا كمكم منيد.مثلث خيام اين جوريه كه اگر در رديف 7 و ستون 4 باشيم بايد عدد 35 نشون بده !همون تركيب رياضيات .تابع p براي محاسبه جايگشته
#include <iostream.h>
#include <conio.h>
int fact(int);
int p(int,int);
int c(int,int);
int main()
{
int k=1,m=12;
clrscr();
for(int i=0;i<=12;i++)
{
while(k<=m)
{
cout<<" ";
k++;
}
m--;
k=1;
for(int j=0;j<=i;j++)
cout<<c(i,j)<<" ";
cout<<endl;
}
getch();
return 0;
}
int fact(int n)
{
if (n<0) return 0;
int f=1;
while (n>1)
f*=n--;
return f;
}
int p(int o,int k)
{
if(o<0 || k<0 || k>o) return 0;
return fact(o)/fact(o-k);
}
int c(int r,int d)
{
if( p(r,d)==0 || fact(d)==0 ) return 0;
return p(r,d)/fact(d);
}
#include <iostream.h>
#include <conio.h>
int fact(int);
int p(int,int);
int c(int,int);
int main()
{
int k=1,m=12;
clrscr();
for(int i=0;i<=12;i++)
{
while(k<=m)
{
cout<<" ";
k++;
}
m--;
k=1;
for(int j=0;j<=i;j++)
cout<<c(i,j)<<" ";
cout<<endl;
}
getch();
return 0;
}
int fact(int n)
{
if (n<0) return 0;
int f=1;
while (n>1)
f*=n--;
return f;
}
int p(int o,int k)
{
if(o<0 || k<0 || k>o) return 0;
return fact(o)/fact(o-k);
}
int c(int r,int d)
{
if( p(r,d)==0 || fact(d)==0 ) return 0;
return p(r,d)/fact(d);
}