[关闭]
@w616561153 2020-11-07T12:34:36.000000Z 字数 1365 阅读 775

ccf201612题解

ccf题解 题解


1.201612-01 中位数

题目描述

试题编号: 201612-1
试题名称: 中间数
时间限制: 1.0s
内存限制: 256.0MB

中位数

解析

题目中规定的中位数:一个数小于它的数的个数等于大于它的数的个数。
因为题目规模较小,所以我们可以采用的算法。
即选中一个数,然后遍历整个数组分别找到比它小的数的个数和比它大的数的个数。

通过代码

  1. //2148609 <13100928923> <王恪楠> 中间数 11-07 12:02 610B C++ 正确 100 46ms 2.535MB
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. int n;
  5. int a[1050];
  6. int main()
  7. {
  8. int flag = 1; //标记,是否找到了中位数。如果flag值不变,则输出-1.
  9. scanf("%d", &n);
  10. for(int i = 1; i <= n; i ++)
  11. scanf("%d", &a[i]);
  12. for(int i = 1; i <= n; i ++){
  13. int cnt0 = 0, cnt1 = 0; //cnt0比a[i]小的数的个数,cnt1比a[i]大的数的个数.
  14. for(int j = 1; j <= n; j ++){
  15. if(a[i] > a[j])
  16. cnt1 ++;
  17. if(a[i] < a[j])
  18. cnt0 ++;
  19. }
  20. if(cnt0 == cnt1){
  21. printf("%d", a[i]);
  22. flag = 0;
  23. break;
  24. }
  25. }
  26. if(flag == 1)
  27. printf("-1");
  28. return 0;
  29. }

2.201612-02 工资计算

题目描述

试题编号: 201612-2
试题名称: 工资计算
时间限制: 1.0s
内存限制: 256.0MB

工资计算

解析

题意不难理解,需要把握准确。

为税前工资。
对于超出3500元的部分X实行阶梯缴税,


演示文稿1_01.png
计算出需要缴纳的税款即是税后工资。
时,即是所求。

因为所求一定是的倍数,所以枚举全部的倍数。

通过代码

  1. 2148234 <13100928923> <王恪楠> 工资计算 11-06 22:16 818B C++ 正确 100 31ms 2.535MB
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. int cal(int x)
  5. {
  6. int sum = x, tax = 0;;
  7. if(x < 3500)
  8. return x;
  9. x -= 3500;
  10. if(x > 80000) //阶梯缴税.
  11. tax += (x - 80000) / 100 * 45, x = 80000;
  12. if(x > 55000)
  13. tax += (x - 55000) / 100 * 35, x = 55000;
  14. if(x > 35000)
  15. tax += (x - 35000) / 100 * 30, x = 35000;
  16. if(x > 9000)
  17. tax += (x - 9000) / 100 * 25, x = 9000;
  18. if(x > 4500)
  19. tax += (x - 4500) / 100 * 20, x = 4500;
  20. if(x > 1500)
  21. tax += (x - 1500) / 100 * 10, x = 1500;
  22. tax += x / 100 * 3;
  23. return sum - tax;
  24. }
  25. int main()
  26. {
  27. int t;
  28. scanf("%d", &t);
  29. for(int i = 1; i <= 100000; i ++) //枚举.
  30. if(cal(100 * i) == t){
  31. printf("%d", i * 100);
  32. break;
  33. }
  34. return 0;
  35. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注