如何从文本文件中引入数字并在c#中对其进行数学运算?
本文关键字:运算 文本 文件 数字 | 更新日期: 2023-09-27 18:12:46
我是c#新手。我试图把数字从一个txt文件到我的程序和乘它们。文本文件的格式如下:
1
2
3
4
5
6
7
8
9
10
我需要这个程序做1x2x3x4x5x6x7x8x9x10=3628800
。
这是一个包含200万个不同数字的列表。
我可以让它输出到一个文本文件,只是不输入。我四处找了找,却找不到答案。
谢谢。
只需几行代码就可以完成。
var lines = File.ReadLines(fileName);
var collection = new List<int>();
foreach (var line in lines)
{
collection.AddRange(line.Split(' ').Select(n => Convert.ToInt32(n)));
}
var result = collection.Distinct().Aggregate((i, j) => i * j); // remove distinct if you don't want eliminate duplicates.
你可以试试这个
string value1 = File.ReadAllText("file.txt");
int res = 1;
var numbers = value1.Split(' ').Select(Int32.Parse).ToList();
for(int i=0;i<numbers.Count;i++)
{
res = res * numbers[i];
}
Console.WriteLine(res);
var numbers = File.ReadAllText("filename.txt").Split(' ').Select(int.Parse); // Read file, split values and parse to integer
var result = numbers.Aggregate(1, (x, y) => x * y); // Perform multiplication
您想将200万个数字相乘,但是有一个问题。
问题是内存限制。为了保存一个大的数字,你必须在System.Numerics
命名空间内使用BigInteger
类。
您可以通过在项目顶部添加Using关键字来使用此参考。
using System.Numerics;
如果编译器不识别Numerics
,则需要添加System.Numerics.dll
的汇编引用。
你的代码应该是这样的:
string inputFilename = @"C:'intput.txt"; // put the full input file path and name here.
var lines = File.ReadAllLines(inputFilename); // put text lines into array of string.
BigInteger big = new BigInteger(1); // create the bigInt with value 1.
foreach (var line in lines) // iterate through lines
{
big *= Convert.ToInt32(line); // Multiply bigInt with each line.
}
string outputFilename = @"C:'output.txt"; // put the full output file path and name here
File.WriteAllText(outputFilename, big.ToString()); // write the result into text file
这可能需要很长时间才能完成。但这一切都取决于运行的硬件。在此任务期间,您可能会遇到内存溢出异常,这取决于您拥有的内存量。