第一题
#include<stdio.h>
int main()
{
int n,i,k,a=1,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)//循环n次,求n个和
{
for(k=1;k<=i;k++)//求阶层i!
{
a=a*k;
}
s=s+a;//阶层求和
a=1; //a重新归1
}
printf("阶层和是%d\n",s);
return 0;
}
============
第二题,给出一个能输出任意层塔的函数
#include<stdio.h>
int main()
{
int n,i,k;
scanf("%d",&n);//读入需要输出的塔有几层 ,对于这道题可以删去,把n定义为5
for(i=1;i<=n;i++)//循环n次,每次输出一层
{
for(k=1;k<=(n-i);k++)//对于第i层,需要输出n-i个空格
{
printf(" ");
}
for(k=1;k<2*i;k++)//对于第i层,需要输出2i-1个*
{
printf("*");
}
printf("\n");//别忘了最后要换行
}
return 0;
}
===========
第三题,给出求从n到m所有素数的方法
#include<stdio.h>
#include<math.h>
int main()
{
int n,m,a,b,c=0,i=2,s[100]/*定义一个有100个元素的素数组*/,j=-1;
scanf("%d%d",&n,&m);
for(a=n;a<=m;a++)//从n到m一个个找
{
for(i=2;i<a;i++)//从2到a-1,依次除a
{
b=a%i;
if(b==0) c=c+1;/*c表示除1和自己以外的因数个数,如果a整除i,就给c加一个数 */
}
if(c==0) //如果没有其他因数,就把a加到素数数组中去
{
j=j+1;
s[j]=a;
printf("%d\n",s[j]);
}
else c=0;
}
return 0;
}