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");
}
好聪明这么简单的方法就想到..我首先想到就是用循环来...