谢谢帮忙解答!!c语言题目

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:18:32
1编程输出如下由“*”组成的三角形。
*
**
***
****
*****
2,求1+2!+3!+....+20!的和

1.
#include<stdio.h>
void main()
{
int i,j,k;
for(i=0;i<5;i++)
{
for(j=0;j<4-i;j++)
printf(" ");
for(k=0;k<2*i+1;k++)
printf("*");
printf("\n");
}
}
2.首先声明个问题:20!已经远远超出C数据变量类型的范围,最长的是无符号长整型,范围0~4294967295。这个范围内只能算出前12项,即加到12!。至于加到20!已经无能为力。
下面的程序是1+...+12!的结果。
#include<stdio.h>
#include<math.h>
unsigned long jiecheng(int);
void main()
{
int i;
unsigned long sum=0;
for(i=1;i<=12;i++)
{
sum+=jiecheng(i);
}
printf("sum=%lu\n",sum);
}
unsigned long jiecheng(int a)
{
if(a==1)
return a;
else return a*jiecheng(a-1);
}