A simple challenge for c/c++ fans, use only 2 variable and 2 for loop to print a pascal triangle looks as bellow
1
121
12321
1234321
123454321
12345654321
1234567654321
123456787654321
12345678987654321
My solution:
#include<stdio.h>
#include<stdlib.h>
void piramid(int const c)
{
int x,y;
for(y=0; y<c; y++)
{
for(x=0; x<c-(1+y)+((y*2)+1); x++)
{
if(x<(c-(y+1)))printf(" ");
else
{
if(x-(c-(y+2))>y+1) printf("%d",(2*y)+2-(x-(c-(y+2)) ));
else printf("%d",(x-(c-(y+1))+1 ));
}
}
printf("\n");
}
}
int main(int argc, char* argv[])
{
if (argc==2)
{
if (atoi(argv[1])>9 || atoi(argv[1])<=1)
{
printf("Insert range within 2 to 9, ig. %s 9\n",argv[0]);
return 1;
}
piramid(atoi(argv[1]));
}
else
printf("Insert range within 2 to 9, ig. %s 9\n",argv[0]);
return 0;
}