一道c语言的问题 求大神帮忙 解答一下!!!!!

题目是这样的:某客户为购房办理商业贷款,选择了按月等额本息还款办法。在客户本金(loan)个月利率(rate)一定的情况下,住房贷款的月还款额(money),取决于还款月数(month),客户打算在5-30年内选择还清贷款的年限,想得到一张还款年限,月还款表以供参考。编写程序,输入带块本金loan,和月利率,rate,输出“还款年限 --月还款表 ”,还款年限的范围是5-30年,输出时分别精确到年和元。
公式:money=(loan*rate*(1+rate)*pow(1+rate,month))/(pow(1+rate,month)-1);

#include <stdio.h>

#include<math.h>

int main(int argc, const char * argv[])

{

double loan,rate,money;

int i,month;

scanf("%lf%lf",&loan,&rate);

for (i=5; i<=30; i++) {

month=12*i;

money=(loan*rate*(1+rate)*pow(1+rate, month))/(pow(1+rate, month)-1);

printf("还款年限:%d 月还款:%lf\n",i,money);

}

return 0;

}
是这样么?

输入10000 0.01
输出:
还款年限:5 月还款:224.668922

还款年限:6 月还款:197.456944

还款年限:7 月还款:178.292601

……………………
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-27
感觉是用Trie树(但其实我也不知道怎么运用),希望能有高手回答你吧。加油,ACMer !
刚才又有了一点想法,就是在建立Trie树的时候,当出现一个分岔点,就用数组记录下正在进行建树的字符串还有多少个字符没有添加到树中(因为题目所求的结果就是一个字符串删去后面的一段之后添加另外一个字符串的后缀,即两个字符串会有相同的前缀),同时在建树的过程中每一个节点都记录该字符串还有多少个字符没有添加到树中。这样只要已出现分岔点,就可以将正在建树的字符串的长度加上之前进入了树的字符串在分岔点时剩下的字符个数,就可以得出那两个字符串的结果。用一个变量记录最小值,最后就可以得到一个最小值了。追问

a.谢谢了。。。这是纯粹的编程,,题目比较简单,就是我不知哪里的逻辑出现问题、、改了而是多遍 啦。。。头疼啊

一道c语言题目 求大神指点下算法?
根据题意,随机生成红绿蓝球任意个数,并任意顺序排列。这里采用随机数实现。统计按红绿蓝顺序排列最少交换次数,我的思路是:第一步:循环将最后一个红色球与最靠前的其它两色球(并且满足位置在红球之前)交换。第二步:循环将最后一个绿球与最靠前的蓝球(必须在绿球之前)交换。include <stdio.h> ...

C语言问题,求大神解决,说下所使用的原理及知识点,谢谢啦,我是小白...
c+32 = 65+32 = 97;在ASCII码中 字符97是字符'a'所以答案选择 B

c语言的题,求大神解答
选择的答案都是对的 题1:i++先进行表达式运算,最后再自增;++i先自增,再进行表达式运算,从结果上看最终都会导致i+1,所以结束后i,j,k都分别加1了。题2:C的写法就是强制类型转换,a1+a2的结果本来还是int,但是被强制转换成了char。A、B是普通的加法运算,D是可以说是赋值运算 ...

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
错误1:宏定义最后没有分号,将#define D 500;改为#define D 500 错误2:l不是整数,因此将l定义为int型就错了 错误3:既然规定输入格式为P=,那么输入时就不能直接输入数值,而应在数值之前输入P=,例如输入P=6000 另外,程序的不妥之处:1、利润不一定是整数,因此将P定义为int型不妥 2、i...

C语言的一道题不会做了,求大神帮一下
第一题: a=4,b=8, 所以 (b==a) 为假,假就是 0,c= (b==a); c 得 0。语句中 a,b 数值 未发生过变化,保持初始值 a=4,b=8。所以输出 a,b,c 印出: 4,8,0 第二题:输入58,a=58;a>50 的条件成立,输出a值,印58 a>40 的条件成立,输出a值,印58 a>...

C语言题目,求大神解答
p=aa;\/\/p指向数组aa首地址,即a的位置 当i=0时,会执行 if ( i==0 ) aa[i][i+1]=**(p++); \/\/这时p=p+1,p指向了aa数组的第二行首地址,即d所在位置,所以,printf("%c\\n", **p ); 输出d 答案为C

C语言试题啊,求大神帮忙答案啊!
c、extern d、register 这个题目容易,没有指定当然是自动指定的了。本题答案为a。另外一个小知识,我们平常看到的int a,b,c;实际上省略了auto,全部应该是 auto int a,b,c;题号:7 以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub (...

发现了一个有趣的c语言问题,请各位大神帮忙解释一下。
2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是一个地址值罢了,直接用地址值和直接用指针,这没有任何区别,最多就是编译器会警告你一下。不知道你说的“”自己定义一个函数比如f(*pointer);然后在用这种方法就会报错“”是什么意思 看下面代码 include <stdio.h...

C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因..
则表示指向a[2][1]的指针,所以*(*(a+2)+1)就是a[2][1]。再来看D选项,a[2]是指向a[2][0]的指针,a[2]+1就是指向a[2][1]的指针。所以*(a[2]+1)就是a[2][1]。第三项结果是一个指针,也就是一个地址。它就是a[2][1]的地址,由于scanf要求是地址,所以它是正确的。

C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
主要考察你c语言三目运算符的结合方向 是自右向左的 所以a<b?a:c<d?c:d 可以看成 a<b?a: (c<d?c:d) 1 < 4 ? a : (c < d ? c:d)括号内的表达式也可以看做是一个元素 因为 a = 1 b = 4 所以 条件 a < b 成立 所以选前者 a 答案就是 A) 1 ...

相似回答