永发信息网

C# 编写程序,求p=1*3*5*...*(2n-1)的值

答案:3  悬赏:60  手机版
解决时间 2021-04-03 02:42
  • 提问者网友:两耳就是菩提
  • 2021-04-02 07:51
C# 编写程序,求p=1*3*5*...*(2n-1)的值
最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-04-02 09:01
Console.Write("请输入n=");
int n=Convert.ToInt32(Console.ReadLine());
int sum=0;
for(int i = 1; i < 2 * n - 1; i += 2)
{
sum *= i;
}
Console.WriteLine("p={0}", sum);
Console.ReadKey();
===========================================
搞定
全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-04-02 12:11
class Program
{
static void Main(string[] args)
{
int p=1,n;
Console.Write("请输入n的值:" );

try
{
n=Int32.Parse(Console.ReadLine().ToSting());
for(int i=1;i<=n;i++)
{
p=p*(2*n-1);
}
Console.Write("计算结果是:{0}",p);
Console.ReadKey();
}
catch (Exception e)
{
Console.Write(e.Message);
Console.ReadKey();
}
}
}
  • 2楼网友:街头电车
  • 2021-04-02 10:35
考虑到P的结果可能超出int和long型数据的表示范围,可以使用数组来存储P,每一个数组元素存储其中的一位:
using System;
class Program3
{
public static void Main()
{
int num;
int[] arr=new int[100000];
while (true)
{
Console.Write("请输入一个奇数:");
num = int.Parse(Console.ReadLine());
if (num % 2 == 1)
break;
}
Factorial(num, arr);
Console.WriteLine("1 * 3 * ... * {0} = ", num);
ListFactorial(arr, 40);
Console.WriteLine("\n共" + arr[0] + "位");
}
//P=1*3*5...*(2n-1)
public static void Factorial(int num, int[] arr)
{
int i, j;
int c;
int temp;

if(num < 0)
{
Console.WriteLine("数据错误");
return;
}
for(i=0; i arr[i] = 0;

arr[0] = 1;
arr[1] = 1;
for (i = 3; i <= num; i += 2)
{
c = 0;
for(j=1; j<=arr[0]; j++)
{
temp = c + arr[j] * i;
arr[j] = temp % 10;
c = temp / 10;
}
while(c > 0)
{
arr[j++] = c % 10;
c /= 10;
arr[0]++;
}
}
}

public static void ListFactorial(int[] arr, int size)
{
long i, c;
for(i=arr[0],c=1; i>0; i--,c++)
{
Console.Write(arr[(int) i]);
if(c % size == 0)
{
Console.WriteLine();
}
}
}

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯