回 帖 发 新 帖 刷新版面

主题:请问如何分步计算

今天看到一个题目但是想了半天就是想不明白如何一步一步来求这个解
题目是这样的
企业发放的奖金根据利润提成。利润(x)低于或等于10万元的,奖金可以提成10%;利润高于10万元的,底于20万时,低于10万的部分按10%提成,高于10万元的部分,可提成7.5%;20万<I<=40万时,底于20万的部分仍然按上述办法提成。高于20万的部分按5%提成;40万<x<=60万时,高于40万的部分按3%提成;60万<x<=100玩,高于60万的部分按1.5%提成;x>100万时,超过100万的部分按1%提成。要求输入当月利润I 求发放的奖金
  
我是这样编的 但是老感觉不对  上机做了也还是没成功不知道那里错了
请各位大哥大姐帮帮忙谢谢了
input "x=";x
if x<=100000 then
   y=x*0.1
   elseif x>100000 and x<=200000 then
   y=x*0.075
   elseif x>200000 and x<=400000 then
   y=x*0.05
   elseif x>400000 and x<=600000 then
   y=x*0.03
   elseif x>600000 and x<=1000000 then
   y=x*0.015
   elseif x>1000000  then
   y=x*0.01
end if
print "y=";y
end
但是算的都不对
我想如过是利润是30W那么应该是30W中10W下的按10%提成10W到20W的按7.5%提成
20W到30W按5%提成
但是怎么才能实现呢
请大哥大姐帮帮忙!!
谢谢

回复列表 (共4个回复)

沙发

这很简单:  x为利润,z为奖金.

input x
  
10 y=x
   if y>100000 then y=100000
   x=x-y
   z=z+y*0.10

20 y=x
   if y>100000 then y=100000
   x=x-y
   z=z+y*0.075

40 y=x
   if y>200000 then y=200000
   x=x-y
   z=z+y*0.050

60 y=x
   if y>200000 then y=200000
   x=x-y
   z=z+y*0.030

100 y=x
    if y>400000 then y=400000
    x=x-y
    z=z+y*0.015

200 y=x
    z=z+y*0.01

print z

板凳

input x
  
if x>100000 then
   z=z+100000*0.10
   if x>200000 then
      z=z+100000*0.075
      if x>400000 then
         z=z+200000*0.05
         if x>600000 then
            z=z+200000*0.03
            if x>1000000 then
               z=z+400000*0.015
               z=z+(x-1000000)*0.01
            else
               z=z+(x-600000)*0.015
            endif
         else
            z=z+(x-400000)*0.03
         endif
      else
         z=z+(x-200000)*0.05
      endif
   else
      z=z+(x-100000)*0.075
   endif
else
   z=x*0.10
endif

print z

建议还是做成数组与函数调用的形式来使用.

3 楼

input x
do
  read a,b
  if x>a then
     z=z+(x-a)*b
     x=a
  endif
loop while a
print z

data 1000000,0.01,600000,0.015,400000,0.03,200000,0.05,100000,0.075,0,0.1

事关民生问题,请反复验算确认无误再发奖金.

4 楼

太谢谢你了
非常感谢!!以后有问题还找你啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册