1 c語言输入一个数,求这个数的阶乘。
2.显示出
      *
     ***
    *****
   ******* 
3.输入两个数m,n.如果n=2的m次方,则输出m,n,否则继续  
請求各位ggjj指點一下~感謝不已~
阶乘 转帖 
#include<stdio.h>  
#include<conio.h>
#include<malloc.h>
void cal(unsigned int *s,int n)
{  
        unsigned long p,k=0;  
        int i;  
        static int m=1,b=0; 
        for(i=b;i<m;i++) 
                { 
                p=(long)s[i]*(long)n+k; 
                k=p/10000; 
                s[i]=p-k*10000; 
                } 
        if(!s[b])
                {
                 b++;
                }
        if(k){
                s[m++]=k;
             }
} 
int main(void)
{ 
        unsigned int *s;
        int i; 
        int n;
        scanf("%d",&n); 
        s=(unsigned int *)malloc(n*sizeof(s)); 
        for(i=1;i<n;i++) 
                {
                s[i]=0;
                }
        s[0]=1; 
        for(i=2;i<=n;i++) 
                {
                cal(s,i);
                }
printf("\n%d!=\n",n);
        n--; 
        while(!s[n])
                {
                n--;
                }
        printf("%d",s[n--]); 
        for(i=n;i>=0;i--)  
                {
                printf("%04d",s[i]);
                }
        printf("\n");  
        free(s);  
        
        getch();
        return 0;
}
显示 
#include <stdio.h>
#define line 19
main()
{ char a[line][line]={' '}; 
  int i=0,j=0,k=0;
  scanf("%d",&k);
  for (j=0;j<k;j++)
  
   for (i=0;i<k;i++)
     {
      if (i<=j) a[i][j]='*';
      else a[i][j]=' ';
     }
 
  for (j=0;j<k-1;j++)
   
   for (i=0;i<k;i++)
     {
       if (i<=j) a[i][k*2-2-j]='*';
       else a[i][k*2-2-j]=' ';  
     }
  for (i=k-1;i>=0;i--)
  {printf("\n");
   for (j=0;j<2*k-1;j++)
   printf("%c",a[i][j]);
  }
  printf("\n");
}