w

yangzhen123 2014-03-12 07:27:34
Description设银行整存零取一年的月利率为n( 0 < n < 1, double)。我手上有一些钱,我想在m( 0 < m < 100, int)年后取出k( 0 < k < 100000, int)元,到第m年恰好取完,那么我应该存多少钱?
Input一行数据包含n,m,k用一个空格隔开
Output存钱数,保留两位小数
Sample Input
0.0059 10 10000Sample Output
69976.82Hint存钱和取钱的过程,可以采用倒推的方法。若第五年年底连本带息要取10000元,则要先求出第五年年初银行存款的钱数:
第五年初存款=10000/(1+12*0.0059)
依次类推可以求出第四年、第三年......的年初银行存款的钱数:
第四年年初存款=(第五年年初存款+10000)/(1+12*0.0059)
第三年年初存款=(第四年年初存款+10000)/(1+12*0.0059)
第二年年初存款=(第三年年初存款+10000)/(1+12*0.0059)
第一年年初存款=(第二年年初存款+10000)/(1+12*0.0059)
通过以上过程就可以很容易地求出第一年年初要存入多少钱。
#include<stdio.h>
int m,k;
double n;
int main()
{
float a;
scanf("%ld%d%d",&n,&m,&k);
float f(int m);
a=f(m);
printf("%.2f\n",a);
return 0;
}
float f(int m)
{
float y;
if(m==1)
y=k/(1+12*n);
else
y=(f(m-1)+k)/(1+12*n);
return y;
}
求大神看看到底哪里错了 运行不出来结果
...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2014-03-12
  • 打赏
  • 举报
回复
我好像搞错了 不行你看了以后不行我再看看
百曉生 2014-03-12
  • 打赏
  • 举报
回复
# include<stdio.h>
# include <windows.h>
int m, k;
double n;
int main()
{
	float a;
	scanf("%lf %d %d", &n, &m, &k); 
	float f(int m);
	a = f(m);
	printf("%.2f\n", a);
	system("pause");
	return 0;
}
float f(int m)
{	
	double y;  //这里还是也用double吧
	if(m == 1)
		y = k / (1+12*n);
	else
		y = (f(m-1)+k) / (1+12*n);
	return y;
}
 /*楼主你8行三个数据类型最好用空格分开,
 还有,你已经在上面定义了n是double,怎么这里又用%ld输入啊?改成%lf试试*/
看看行不行

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧