如何生成和显示序列(贷款练习)

时间:2016-01-31 09:17:35

标签: c# sequence

我想创建一个序列,其中:

a0 = 1100000
a1 = 1100000 * 1.012 - 25000
a2 = (1100000 * 1.012 - 25000) * 1.012 - 25000
a3 = (1100000 * 1.012 - 25000) * 1.012 - 25000) * 1.012 - 25000  
...

问题是,它只计算/显示a1(1088200),一百次。 (我想将它全部存储在一个名为ms的数组中)

以下是我提出的代码:

double interest = 1.012;

int[] ms = new int[100];

for (int i = 0; i < ms.Length; i++)
{
    int a0 = 1100000;
    ms[i] = Convert.ToInt32(a0 * interest - 25000);
    a0 = ms[i];

    Console.WriteLine(ms[i]);
}

Console.ReadLine();

1 个答案:

答案 0 :(得分:4)

您在循环的每次迭代中声明一个新的a0变量,并始终使用值1100000初始化它。如果要在循环内使用上一次迭代的值,则需要声明它之外的循环:

int a0 = 1100000;
for (int i = 0; i < ms.Length; i++)
{
    ms[i] = Convert.ToInt32(a0 * interest - 25000);
    a0 = ms[i];
    Console.WriteLine(ms[i]);
}

请注意,您在每次迭代时都会失去精确度 - 您可能最好将a0保留为double(或decimal)并且仅在存储时强制转换:< / p>

decimal interest = 1.012m;
decimal current = 1100000;
for (int i = 0; i < ms.Length; i++)
{
    current = current * interest - 25000;
    ms[i] = (int) current;
    Console.WriteLine(ms[i]);
}