用C#编写程序:1!+2!+3!+4!+······20!的和

用C#编写程序

第1个回答  2012-01-03
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/*用C#编写程序:1!+2!+3!+4!+······20!的和
*/
namespace Jiecheng
{
class Program
{
private int num; //限制的数
private int sumt,sum; //sumt存储每个数的阶乘,sum用来存储每个数的阶乘的和
public Program(int num)
{
this.num = num;
}
public void Sum() {
int temp=1;
for (int i = 1; i <= num; i++) //外层循环
{
temp = 1;
for (int j = 1; j <= i; j++) //内层循环,计算每个数的阶乘
{
temp = temp * j;
sumt = temp;
temp = sumt;

}
sum = sum + sumt;
}

Console.WriteLine("{0}的阶乘的和为:{1}",num,sum);
}
static void Main(string[] args)
{
Program p = new Program(20);
p.Sum(); //调用类的方法
Console.ReadLine();
}
}
}
在vs2010下调试通过。
第2个回答  2012-01-03
。。。这样的题肯定是二重循环啦。
代码如下:
public void cal(){
int a=1,sum=0;
for(int i=1;i<21;i++){
a=i; //初始化a的值
for(int j=i;j>=1;j--){
a*=j;
}
sum+=a;
}
}

最后你再打印一下sum的值就可以了 ,你可以粘贴去试试看。反正一重循环的肯定是错的。
一楼那个太高深了- -!! pow(float x,float y)不是x的y次幂么。。。。
然后c=pow(-1,a-1);得出的是一个1跟-1循环的数。。。
我想知道你回答的是不是楼主想问的题- -#。。。绕死人了还没看出是不是符合民意的
第3个回答  2012-01-03
using System;
using System.Collections.Generic;
using System.Text;

namespace Temp
{
class Program
{
static void Main(string[] args)
{
double num = 0;
for (int i = 1; i <= 20; i++)
{
num += aFun(i);
}
Console.WriteLine(new StringBuilder().Append('-', 30));
Console.WriteLine(num);
Console.ReadKey();
}

static double aFun(int a)
{
if (a < 0) return -1.0;
else
{
double result = 1.0;
while (a-- > 1) result *= a;
Console.WriteLine(result);
return result;
}
}
}
}
第4个回答  2012-01-03
int sum=0;
int p=1;
for (int n=1; n<21; n++)
{
p*=n;
sum+=p;
}
writeln(" sum= {0} " , sum);
第5个回答  2012-01-03
#include<stdio.h>
#include<math.h>
main()
{double a,s,c,y,sum=0;
do
{s=a*a;
c=pow(-1,a-1);
y=c*s;
sum=sum+y;
a++;
}while(a<=20);
prinff("%.0f",sum);
}追问

using System;
using System.Collections.Generic;
using System.Text;

namespace jiec
{
class Program
{
static void Main(string[] args)
{
int i;
double a=1,n=0;
for(i=1;i<=20;i++)
{
a*=i;
n+=a
}
Console .WriteLine ();
}
Console.Read ();
}
}
}
这个程序对吗?我用c#

追答

循环的部分应该是这样的
for(int i=1;i=1;j--){
a*=j;
}
n+=a;
}

本回答被提问者采纳
相似回答