自然常数E
自然常数,符号e,为数学中一个常数,是一个无限不循环小数,且为超越数,其值约为2.718281828459045。它是自然对数函数的底数。
我们打印表达式(1+1/x)的x次方的值以及获取第一次大于2.718的正整数
新建C#控制台应用程序NaturalConstantDemo,
测试程序如下:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace NaturalConstantDemo
{class Program{static void Main(string[] args){/** 自然常数,符号e,为数学中一个常数,是一个无限不循环小数,且为超越数,其值约为2.718281828459045。它是自然对数函数的底数。* 表达式(1+1/x)的x次方的极限就是E*/Console.SetWindowSize(120, 40);Console.WriteLine("测试表达式(1+1/x)的x次方的极限【x为正整数】是否为自然常数E");int N = 6000;StringBuilder sb = new StringBuilder();Stopwatch stopwatch = new Stopwatch();stopwatch.Start();for (int i = 1; i <= N; i++){double currentValue = Math.Pow(1 + 1.0 / i, i);sb.AppendLine($"当前数字【{i.ToString("D4")}】,值为【{currentValue}】");if (i <= 20 || i % 100 == 0){Console.WriteLine($"当前数字【{i.ToString("D4")}】,值为【{currentValue}】");}}stopwatch.Stop();Console.WriteLine($"耗时【{stopwatch.Elapsed}】");stopwatch.Reset();string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, DateTime.Now.ToString("yyyyMMdd") + ".txt");File.WriteAllText(fileName, sb.ToString());stopwatch.Start();int number = GetFirstIndexGreatThanE();stopwatch.Stop();Console.WriteLine($"计算表达式(1+1/x)的x次方 第一次大于2.718的正整数X={number},耗时【{stopwatch.Elapsed}】,折算毫秒【{stopwatch.Elapsed.TotalMilliseconds}】ms");Console.ReadLine();}/// <summary>/// 找出 表达式(1+1/x)的x次方 第一次大于2.718的正整数x/// </summary>/// <returns></returns>static int GetFirstIndexGreatThanE() {//截取E的前三位:2.718double threeDigitNumber = Math.Round(Math.E, 3);//double.Parse(Math.E.ToString("F3"));int number = 1;while (Math.Pow(1 + 1.0 / number, number) < threeDigitNumber) {number++;}Console.WriteLine($"表达式(1+1/x)的x次方第一次大于【{threeDigitNumber}】的正整数X=【{number}】,值为【{Math.Pow(1 + 1.0 / number, number)}】");return number;}}
}