课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759
1030 Problem A 求奖金总数
Description
企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%;
利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%;
200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;
400000<I≤600000元时,高于400000元的部分按3%提成;600000<I≤1000000时,高于600000元的部分按1.5%提成;
I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
Input
一个整数,当月利润。
Output
一个整数,奖金。
Sample Input
900
Sample Output
90
参考解答1:
#include<iostream> using namespace std; int main() { double jj,rate; cin>>rate; if(rate<=100000) jj=rate*0.1; if(rate>100000&&rate<=200000) jj=100000*0.1+(rate-100000)*0.75; if(rate>200000&&rate<=400000) jj=100000*0.1+100000*0.75+(rate-200000)*0.05; if(rate>400000&&rate<=600000) jj=100000*0.1+100000*0.75+200000*0.05+(rate-400000)*0.03; if(rate>600000&&rate<=1000000) jj=100000*0.1+100000*0.75+200000*0.05+200000*0.03+(rate-600000)*0.015; if(rate>1000000) jj=100000*0.1+100000*0.75+200000*0.05+200000*0.03+400000*0.015+(rate-1000000)*0.01; cout<<jj; return 0; }
参考解答2:
#include <iostream> using namespace std; int main() { int l,salary; cin>>l; switch(l/100000) { case 0: salary=l*0.1; break; case 1: salary=100000*0.1+(l-100000)*0.075; break; case 2: case 3: salary=100000*0.1+100000*0.75+(l-200000)*0.05; break; case 4: case 5: salary=100000*0.1+100000*0.75+200000*0.05+(l-400000)*0.003; break; case 6: case 7: case 8: case 9: salary=100000*0.1+100000*0.75+200000*0.05+200000*0.003+(l-600000)*0.015; break; default: salary=100000*0.1+100000*0.75+200000*0.05+200000*0.003+400000*0.015+(l-1000000)*0.01; break; }; cout<<salary; return 0; }
2400 Problem B 多个数的平均值【简单循环】
Description
输入n及n个整数(n不超过20),输出这n个数的平均值
Input
整数n及n个整数,各数用空格隔开
Output
n个整数的平均值(整数)
Sample Input
4 2 4 6 8
Sample Output
5
参考解答:
#include <iostream> using namespace std; int main() { int n, i , a; int sum = 0; cin>>n; for (i=0; i<n; i++) { cin>>a; sum+=a; } cout<<sum/n; return 0; }
2401 Problem C 等比数列之和【简单循环】
Description
已知q与n,求等比数列之和: 1+q+q2+q3+q4+…+qn
Input
输入一对数据,含有一个整数n(1≤n≤20),一个小数q(0<q<2)。
Output
对于每组数据n和q,计算其等比数列的和,精确到小数点后5位。
Sample Input
5 1.2
Sample Output
9.92992
HINT
C语言中,将printf("%.5f\n",x); 可以令x的值保留5位小数输出。
C++中,cout<<setiosflags(ios::fixed)<<setprecision(5)<<x<<endl;令x的值保留5位小数输出,另外,需加头文件#include<iomanip>
参考解答:
#include<iostream> #include<iomanip> using namespace std; int main() { int n,i; double sum=1,q,k=1; cin>>n>>q; for(i=1; i<=n; i++) { k=k*q; sum=k+sum; } cout<<setiosflags(ios::fixed)<<setprecision(5)<<sum<<endl; return 0; }