2 qq 34294203 qq_34294203 于 2016.09.24 10:43 提问

C++数据结构 求大神帮忙给出代码
c++

某企业有20000名普通员工,其计薪方式为50N+K∧3+2*K∧2+1000K+100,其中N为工作的月数,取值范围为[1,36],K为员工等级,取值范围为[1,3],N,K均为整数。试设计一种算法尽可能地缩短全部员工工资的计算时间。

2个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.24 10:58
已采纳

基础的东西 ,先用一个二维数组arr[3][36]存储这 108种工资的所有可能,求摸个员工工资的时候就不需要计算了,直接以工作的月数和等级作为下标访问数组就行,只需计算108次,

qq_34294203
qq_34294203 #include <iostream> using namespace std; int main() { int K,N; double M; for(K=1;K<=3;K++) { for(N=1;N<=36;N++) { M=50*N+K^3+2*K^2+1000*K+100; } } cout<<"请输入工作月数:"<<endl; cin>>N; if(N<=0||N>36){cout<<"输入数据不合理!"<<endl;exit(0);} cout<<"请输入员工等级:"<<endl; cin>>K; if(K<=0||K>3) {cout<<"输入数据不合理!"<<endl; exit(0);} cout<<"薪水:"<<M<<endl; } 无论输入什么结果都一样,麻烦您帮我看看哪里不合适
大约一年之前 回复
qq_34294203
qq_34294203 好哒,谢谢啦,一下子有思路了
大约一年之前 回复
Lmikic
Lmikic   2016.09.24 15:17

在楼上的基础上说的,k取三个值,这样的话就建个一维数组k[3],先把k取不同值时的K∧3+2*K∧2+1000K值

Lmikic
Lmikic 回复qq_34294203: 赞
大约一年之前 回复
qq_34294203
qq_34294203 #include <iostream> using namespace std; int main() { int K,N; double M; for(K=1;K<=3;K++) { for(N=1;N<=36;N++) { M=50*N+K^3+2*K^2+1000*K+100; } } cout<<"请输入工作月数:"<<endl; cin>>N; if(N<=0||N>36){cout<<"输入数据不合理!"<<endl;exit(0);} cout<<"请输入员工等级:"<<endl; cin>>K; if(K<=0||K>3) {cout<<"输入数据不合理!"<<endl; exit(0);} cout<<"薪水:"<<M<<endl; } 不知道为什么无论输入什么结果都一样,大神可以帮忙看看哪里错了吗?
大约一年之前 回复
qq_34294203
qq_34294203 好,谢谢啦,原来没反应过来用数组
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片