首页 新闻 会员 周边

C# 递归从最高层开始循环找出最低层

0
悬赏园豆:15 [待解决问题]

在项目中有这样的一个需求:给员工发工资的时候有一项叫做应发工资,现在暂定应发工资是由岗位工资+基本工资+绩效工资+加班工资组成,其中的每一项又由其他N多项组成,例如:岗位工资=党费+工费,绩效工资=加班工资*(基本工资-加班工资)/2+3500,加班工资=基本工资/(23*24)*1.5,通过循环递归找到了最基础的项是党费,工费和基本工资(最基础的项是可以手动输入的,其余各项都是根据基础项来进行计算的),现在要求计算出应发工资中每一项的值,即岗位工资,绩效工资,加班工资各多少,最后再加起来算出应发工资的总额,这里最关键的是要算出每一项的值,需要说明的是,每一项都是由其他不同的项组合而成,并且其他项又是有另外的项组成,有没有一种可行的办法算出应发工资=岗位工资(5000)+绩效工资(3500)+基本工资(3000)+加班工资(3500)这样形式的结果呢???

C#
gyangjing的主页 gyangjing | 初学一级 | 园豆:4
提问于:2018-08-26 18:56
< >
分享
所有回答(7)
0

你不是说了,循环递归么? 还需要啥,代码?

爱编程的大叔 | 园豆:30839 (高人七级) | 2018-08-27 10:22
0

看不懂你的需求,讲的不明白,你能递归处最基础的项是什么类型的,每个递归过程都可以知道工资的组成类型啊,取出你需要的类型的数据,组合不就行了,不明白你要什么。除非你们是做的破解,用别人封装好的接口,只能知道最后的基础值,不知道过程,这个你跟提需求的公司提要求。

_Roy | 园豆:489 (菜鸟二级) | 2018-08-27 10:59

简单的说吧,应发工资=岗位工资+基本工资+绩效工资+加班工资,其中:岗位工资=党费+工费,绩效工资=加班工资*(基本工资-加班工资)/2+3500,加班工资=基本工资/(23*24)*1.5,这只是一个例子,里面的每一项可能又是其他项计算而来,比如绩效工资=加班工资*(基本工资-加班工资)/2+3500这样,可能加班工资是由其他项组成,里面的项还有可能是另外的项组成,反正就是每一项的组成都是由其他不确定的项组成的,最终计算的结果是:应发工资=岗位工资(5000)+绩效工资(3500)+基本工资(3000)+加班工资(3500)

支持(0) 反对(0) gyangjing | 园豆:4 (初学一级) | 2018-08-27 11:24

@gyangjing:  你拿不到每次递归的数据组成的类型吗?我真的不明白,你递归的函数,不是你自己封装吗,自己封装会不知道怎么取得每层获取的类型?如果是调用的别人写好的,调用别人写好的,就找别人给出每层的类型组成。你想自己反递归破解数据组成非常困难的

支持(0) 反对(0) _Roy | 园豆:489 (菜鸟二级) | 2018-08-27 12:05
0

跟递归有半毛钱关系?

如果你不考虑后期维护,你的需求怎么描述就怎么写计算方法呗,上万行的上帝类又不是没见过。

好吧,你想后期维护省点事,打算通过可配置流程来动态实现,弄个配置文件,做个循环,按照依赖顺序,计算,搞定。

不要轻易使用递归

写代码的相声演员 | 园豆:517 (小虾三级) | 2018-08-28 14:05

每次的工资组成都是不一样的,能用配置文件去配置???

支持(0) 反对(0) gyangjing | 园豆:4 (初学一级) | 2018-08-28 15:15

@gyangjing: 基础值用参数传参,计算流程用配置

支持(0) 反对(0) 写代码的相声演员 | 园豆:517 (小虾三级) | 2018-08-28 15:37
0

这跟递归没有什么太大关系吧   装饰模式  了解一下   很符合你的需要

前行丶 | 园豆:219 (菜鸟二级) | 2018-08-29 11:47
0

数据库中配置呗,配置个工资项目表,用来存自定义项目,再建个工资计算公式表,这张表以工资项目表为基础,让用户前台自定义各个项目的计算公式,前台你计算的时候,每个项目根据用户自定义的公式取到需要的值计算就行了

sunkejava | 园豆:178 (初学一级) | 2018-08-30 16:03
0

明确告诉你,这个不适应递归。
建议按范围由小到大一步步算吧。

中文代码 | 园豆:951 (小虾三级) | 2018-09-07 15:11
0

没得一个人说到点子上的

gyangjing | 园豆:4 (初学一级) | 2019-09-11 15:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册