解题思路:




用一个递归函数就可以解出最后赚的钱。
注意事项:


答案是有保留两位小数的,如果用浮点型要注意保留两位小数而且不能有四舍五入情况。


参考代码:

#include<stdio.h>

int t = 0;  //全局变量作为递归出口
float sum=0;
void jisuan(int k,int n,double p)//一个简单的递归函数
{
	if(t<n){
	sum+=k*p+(sum+t*k)*p;
	t++;
	jisuan(k,n,p);
	
	}
}

int main()
{
	int k,n,s;
	float p;
	scanf("%d%d%f",&k,&n,&p);
	jisuan(k,n,p);
	s = (int )(sum*100);     //将sum小数点两位后的数字删除掉
	printf("%.2f",s/100.0);  //在除以100.0将int类型转成float,这样就防止小数点两位后进行的四舍五入。注意要除以100.0
	return 0;
}
	


点赞(2)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

手残 5年前 回复TA
全局变量作为递归出口有什么用
花落 5年前 回复TA
@酷酷长 不用谢哈哈,这都是当时我学C语言的一些记录,也是写给自己的,能帮到别人那就更好了
酷酷长 6年前 回复TA
谢谢你