[蓝桥杯][算法提高]理财计划

本文介绍了一个简单的C语言程序,用于计算基于月度存款的复利收益。通过输入每月固定存款金额、存款期数及利息率,程序能够准确计算出n个月后的总收益,特别关注了如何避免输出时的四舍五入误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间限制: 1Sec 内存限制: 128MB

题目描述
银行近期推出了一款新的理财计划“重复计息储蓄”。储户只需在每个月月初存入固定金额的现金,银行就会在每个月月底根据储户账户内的金额算出该月的利息并将利息存入用户账号。现在如果某人每月存入k元,请你帮他计算一下,n月后,他可以获得多少收益。

输入
输入数据仅一行,包括两个整数k(100< =k< =10000)、n(1< =n< =48)和一个小数p(0.001< =p< =0.01),分别表示每月存入的金额、存款时长、存款利息。

输出
输出数据仅一个数,表示可以得到的收益。

样例输入
1000 6 0.01

样例输出
213.53

#include<stdio.h>
int main()
{
	int n,money,i;
	double newmoney=0.0,p,len;
	scanf("%d %d %lf",&money,&n,&p);
	len=money;
	for(i=0;i<n;i++)
	{
		newmoney+=money;
		newmoney*=(1+p);
	}
	newmoney=newmoney-n*len;
	newmoney=(int)(newmoney*100)/100.0;//防止四舍五入
	printf("%.2f\n",newmoney);
	return 0;
}

1.在实际问题中,如果利用输出函数来规定输出的小数位数,很可能会因为四舍五入而得不到正确结果,这是可以用这种方法来解决四舍五入
a=(int)(a*100)/100.0; //防止四舍五入
printf("%.2f\n",a);

1.在解决此类实数问题最好用double类型

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值