编写一段代码,将一个数字分为几个不同的区间,并对每个区间进行特殊计算

问题描述 投票:0回答:1

我想编写一段代码,将一个数字分为几个不同的区间,并对每个区间进行特殊计算,如下所示。 最后,显示所有获得的数字的总和。我尝试了几种方法,但没有成功。 **计算公式:
1-如果数字小于五亿,则按输入数字的8%计算。
2-对于超过五亿到二十亿的部分,计算输入数字的7%,并将其与之前的结果相加。
3-对于超过20亿到100亿的部分,计算输入数字的5%,并将其与之前的结果相加。
4-对于超过百亿到三百亿的部分,计算输入数字的4%,并将其与之前的结果相加。
5-从 300 亿及以上,计算输入数字的 3%,并将其添加到之前的结果中。

例如,对于数字 3,500,000,000,答案应为 220,000,000。

我写的代码:

    function calculate(inputnumber: Int64): Extended;
    var a,b,c,d : Extended;
    begin
     d:= (INPUTNUMBER - 500000000 ) ;
     c:= (d - 2000000000 ) * (INPUTNUMBER * 0.07);
     b:= (c - 10000000000) * (INPUTNUMBER * 0.05);
     a:=(b - 30000000000) * (INPUTNUMBER * 0.04);
     Result:= a+b+c+(d * 0.08);
    end
delphi pascal
1个回答
0
投票

我想编写一段代码,将一个数字分为几个不同的区间,并对每个区间进行特殊计算,如下所示。最后,显示所有获得的数字的总和。

当你向SO提出家庭作业问题时,公平地表明你的问题涉及家庭作业。请以后也这样做。

您的任务是为每个间隔编写代码,如果您以从最高资本价值到零的阶梯方式进行操作,那么阶梯的入口点取决于资本价值。

每个步骤如下所示。

  // step 5
  if capital > 30000000000 then   // > 30 billion
  begin
    interest := interest + 0.03 * (capital-30000000000);
    capital := 30000000000;       // remaining (unaccounted) capital falling through
  end;

下面的步骤会有条件

  // step 4
  if capital > 10000000000 then   // > 10 billion
  begin
  //  interest calculation with applicable interest rate
  //  remaining capital (10 billion) to fall through again to following step
  end;

最后又经过几步,最后一步:

  // step 1
  if capital > 0 then
  begin
    interest := interest + 0.08 * (capital);
  end;

这给出了您期望的结果。

© www.soinside.com 2019 - 2024. All rights reserved.