CCF-CSP真题《202212-1 现值计算》思路+python,c++,c满分题解

Posted Hulake_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCF-CSP真题《202212-1 现值计算》思路+python,c++,c满分题解相关的知识,希望对你有一定的参考价值。

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全

试题编号:202212-1
试题名称:现值计算
时间限制:1.0s
内存限制:512.0MB
问题描述:

问题描述

评估一个长期项目的投资收益,资金的时间价值是一个必须要考虑到的因素。简单来说,假设银行的年利率为 5,那么当前的 100 元一年后就会变成 105 元,两年后变成 110.25 元。因此,现在收到 100 元比两年后收到 100 元收益更多,两年后再支出 100 元会比立刻支出 100 元更加划算。

基于上述分析,我们使用如下的模型来衡量时间价值:假设银行的年利率为 i,当前(第 0 年)的 x 元就等价于第 k 年的 x*(1+i)^k 元;相应的,第 k 年的 x 元的当前价值实际为 x*(1+i)^(−k) 元。

现给出某项目未来 n 年的预计收入支出情况,在将所有款项转换为当前价值后,试计算该项目的总收益。

输入格式

从标准输入读入数据。

输入的第一行包含空格分隔的一个正整数 n 和一个实数 i,分别表示年数和银行年利率。

输入的第二行包含空格分隔的 n+1 个整数,依次表示该项目第 0,1,⋯,n 年的预计收入(正数)或支出(负数)。

输出格式

输出到标准输出中。

输出一个实数,表示该项目在当前价值标准下的总盈利或亏损。

样例输入

2 0.05
-200 100 100

样例输出

-14.059

样例说明

该项目当前支出 200 元,在接下来两年每年收入 100 元。虽然表面看起来收支相抵,但计算当前价值可知总共亏损了约 14.059 元。

子任务

全部的测试数据满足 0<n≤50,0<i<1 且 i 的有效数字不多于 3 位,每年预计收入(正数)或支出(负数)的绝对值不大于 1000。

评分方式

如果你输出的浮点数与参考结果相比,满足绝对误差不大于 0.1,则该测试点满分,否则不得分。

提示

  • C/C++:建议使用 double 类型存储浮点数,并使用 scanf("%lf", &x); 进行输入,printf("%f", x); 进行输出。

  • Python:直接使用 print(x) 进行输出即可。

  • Java:建议使用 double 类型存储浮点数,可以使用 System.out.print(x); 进行输出。

真题来源:现值计算

 感兴趣的同学可以如此编码进去进行练习提交

思路讲解:

        本题主要是要理解题目的问题描述中的 “第 k 年的 x 元的当前价值实际为 x*(1+i)^(−k) 元” 这一句话,即之后的每一年的x元 = 当前价值的x*(1+i)^(−k),然后将所有的价值相加即可得到最后答案。

python满分题解:

# 接收题目的第一行输入
a = input().split()
# 赋予接收的n的值
n = int(a[0])
# 赋予接收的i的值
i = float(a[1])
# 接收题目中第 0,1,⋯,n 年的预计收入(正数)或支出(负数)
money = [i for i in map(int, input().split())]
# 设置一个当前价值的总值,初始为0
all = 0
# 将每年的价值转化成当前价值,再加到总值中去
for j in range(n+1):
    all += money[j]*(1+i)**(-j)
# 最后输出总值
print("%.3f"%all)

运行结果: 


        应一位粉丝的要求,就也写了一下c++的题解,希望能有帮助,大体思路和python的是一样的,c++中的 n次方 需要用到 pow这个函数,需要在开头引用数学头文件 <cmath>

c++满分题解:

#include<iostream>
#include<cmath>
using namespace std;

const int N = 1010;
int n;
double i;
int q[N];
double all;

int main() 
    cin >> n >> i;
    for (int j = 0; j <= n; j++) 
        cin >> q[j];
        all += q[j] * pow(1 + i, -j);
    
    printf("%.3f", all);
    return 0;

运行结果: 


c满分题解:

#include<stdio.h>
#include<math.h>

int main()
    int n,j;
    double i, all = 0;
    scanf("%d%lf", &n, &i);
    int a[n];
    for (j = 0; j <= n; j++)
        scanf("%d", &a[j]);
        all += a[j] * pow(1 + i, -j);
    
    printf("%.3f", all);
    return 0;

运行结果:

新CCF-CSP认证历年真题解

CSP认证考什么怎么考?
  
  CCF计算机职业资格认证的每一道试题都十分经典,覆盖现实世界中方方面面的问题。这个历年试题解主要使用C/C++语言编写,将逐步增加Python和Java的解题程序。程序中附有注释,力求解题思路清晰简洁,值得珍藏与模仿。
  逐题改写过程中,富文本编辑器写的博客将全部用Markdown编辑器改写。改写的第一题,都增加了Python和Java的解题程序。
  本文本来只是一个索引链接,为了更加易于使用,格式做了调整,界面更加简洁。原来博文《CCF-CSP认证历年真题解》阅读量已经超过23万,大受广大网友喜爱,博文需要提供更好的服务。本文完成后,原来的博文不再更新。
  部分解题原始代码来自仙客传奇团队。

考试时间第1题第2题第3题第4题第5题
2021.092300000
2021.0422灰度直方图邻域均值DHCP服务器校门外的树疫苗运输 80分链接
2020.1221期末预测之安全指数期末预测之最佳阈值0食材运输 100分链接星际旅行 100分链接
2020.0920称检测点查询风险人群筛查0星际旅行 100分链接密信与计数 100分链接
2020.0619线性分类器稀疏向量Markdown渲染器1246 100分链接乔乔和牛牛逛超市 100分链接
2019.1218报数回收站选址化学方程式区块链魔数 100分链接
2019.0917小明种苹果小明种苹果(续)字符画推荐系统城市规划 100分链接
2019.0316小中大二十四点损坏的RAID5消息传递接口317号子任务 100分链接
2018.1215小明上学小明放学CIDR合并数据中心管道清洁 100分链接
2018.0914卖菜买菜元素选择器再卖菜线性递推式 募集题解
2018.0313000棋局评估二次求和 100分链接
2017.12120000商路 60分链接
2017.0911打酱油00通信网络除法
2017.0310分蛋糕00地铁修建引水入城 100分链接
2016.129中间数000卡牌游戏 募集题解
2016.098最大波动000祭坛 100分链接
2016.047折点计数000网络连接 募集题解
2015.126数位之和000矩阵 募集题解
2015.095数列分段000最佳文章 100分链接
2015.034图像旋转000最小花费 100分链接
2014.123门禁系统000货物调度 100分链接
2014.092相邻数对0字符串匹配0拼图
2014.031相反数000任务调度 100分链接
2013.120出现次数最多的数ISBN号码最大的矩形有趣的数I’m stuck!

相关链接:
  官方网站:CCF计算机职业资格认证
  CCF认证历年真题 满分代码
  CCF201312–模拟练习试题参考答案(C++)
  CCF201312–模拟练习试题参考答案(Java)
      
  程序员需要有精益求精的工匠精神,追求逻辑的极简、时间的最少和存储的最省,并且懂得其中的平衡。
  数据表示需要优先考虑,对于许多问题,找到表示该问题的数据结构,问题自然就解决了。
  希望获得100分,仅仅使用原题的样例来测试是不够的,需要自己设计一些样例,并且需要考虑特殊的边界条件。
  采用C/C++语言编程时,使用STL的包装类和算法是十分必要,这会简化程序逻辑。

以上是关于CCF-CSP真题《202212-1 现值计算》思路+python,c++,c满分题解的主要内容,如果未能解决你的问题,请参考以下文章

CCF-CSP真题202206-归一化处理/寻宝大冒险

新CCF-CSP认证历年真题解

CCF-CSP真题《202209-3—防疫大数据》思路+python题解

201912-4 区块链CCF-CSP真题

CCF-CSP真题《202212-3 JPEG 解码》思路+python,c++满分题解

知道现值,年金,求利率?