| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2357 人关注过本帖
标题:问题少年又来了~~~!
只看楼主 加入收藏
gzpjj
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-6-8
收藏
 问题点数:0 回复次数:22 
问题少年又来了~~~!

题目:假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的一年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。

其实这条题不是小弟自己想问的~!只是班内一女生问到,小弟学力不深不敢乱说给人家听,而且自己都不会做!所以请各位高手帮帮忙~~~!

搜索更多相关主题的帖子: 少年 
2004-06-12 00:35
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

// 从编程的角度出发写的程序。 答案应该为 1787。49

#include <iostream> using namespace std;

class Konto { private: double zinsen; double geld; public: Konto(){ zinsen = 0; geld = 0;} void setZinsen(double theZinsen); void rechnen(bool monateEnde); void einsparen(double einsparSumme); void geldabheben(double abheben); double info(){ return geld;} void reset(){ geld = 0;} }; void Kont:setZinsen(double theZinsen) { zinsen = theZinsen; } void Kont:rechnen(bool monateEnde) { if(monateEnde) geld = geld*(1+zinsen); } void Kont:geldabheben(double abheben) { geld = geld - abheben; } void Kont:einsparen(double einsparSumme) { geld = geld + einsparSumme; }

int main() { Konto myKonto; myKonto.setZinsen(0.0063); double geldSumme; static double k = 0.; double einsparen; do { einsparen = 1787 + k; myKonto.einsparen(einsparen); for(int i = 0; i<5; i++) { for(int j = 1; j<=12; j++) { myKonto.rechnen(j); if(j==12) myKonto.geldabheben(1000); } if(myKonto.info()<0) break; } geldSumme = myKonto.info(); // cout<<geldSumme<<endl; if(geldSumme<-0.001) { myKonto.reset(); k = k+0.0001; } else if(geldSumme>0.001) { k = k-0.0001; myKonto.reset(); } else break; }while(true);

cout<<einsparen<<endl; return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-12 02:03
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

// 从编程的角度出发写的程序。 答案应该为 1787。49

// 贴出来后有字符给吃掉了,再试一下,

程序代码:

#include <iostream> using namespace std;

class Konto { private: double zinsen; double geld; public: Konto(){ zinsen = 0; geld = 0;} void setZinsen(double theZinsen); void rechnen(bool monateEnde); void einsparen(double einsparSumme); void geldabheben(double abheben); double info(){ return geld;} void reset(){ geld = 0;} }; void Kont:setZinsen(double theZinsen) { zinsen = theZinsen; } void Kont:rechnen(bool monateEnde) { if(monateEnde) geld = geld*(1+zinsen); } void Kont:geldabheben(double abheben) { geld = geld - abheben; } void Kont:einsparen(double einsparSumme) { geld = geld + einsparSumme; }

int main() { Konto myKonto; myKonto.setZinsen(0.0063); double geldSumme; static double k = 0.; double einsparen; do { einsparen = 1787 + k; myKonto.einsparen(einsparen); for(int i = 0; i<5; i++) { for(int j = 1; j<=12; j++) { myKonto.rechnen(j); if(j==12) myKonto.geldabheben(1000); } if(myKonto.info()<0) break; } geldSumme = myKonto.info(); // cout<<geldSumme<<endl; if(geldSumme<-0.001) { myKonto.reset(); k = k+0.0001; } else if(geldSumme>0.001) { k = k-0.0001; myKonto.reset(); } else break; }while(true);

cout<<einsparen<<endl; return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-12 02:06
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

还是有字符给吃掉了,我也没办法了,谁有兴趣要程序,我发email 给她/他。


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-12 02:09
gzpjj
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-6-8
收藏
得分:0 

我要我要~~!我的e-mail为:flymetothemoon@21cn.com

谢谢各位高手的帮忙~!希望可以帮到我的同学啦~!


2004-06-12 10:28
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
三楼的答案是错的!

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-12 11:27
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

楼主,给你个示例:

double fun(int a); main() {

int a=5;

printf("%lf",fun(a)); } double fun(int a) { double sum=0;

if(a==1){sum=1000.0/(1+12*0.0063); printf("第 %d 年 年头余额:%lf 年尾计息后:%lf\n",6-a,sum,sum*(1+12*0.0063));} else{ sum+=(fun(a-1)+1000.0)/(1+12*0.0063); printf("第 %d 年 年头余额:%lf 年尾计息后:%lf\n",6-a,sum,sum*(1+12*0.0063)); } return sum; }


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-12 11:59
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

// 答案为1794。08

// 我对结算理解的不对,我原先认为,既然是月息,那么每个月都要计利息,比如 原先 100 元,月息 1% 那一个月后到手 101 元,下个月 就以 101 元为基础拉, 也就是说 一个月后 到手 101*(1+1%),这样推算,如果本金为 G0, 月息为 z% , 那么 一年后,结算应为 G0*(1+z%) ^ 12 , 当然这和大家的计算公式不一样,所以得出的结果就不一样了。

下面的程序改为按照大家的计算公式,那么问题就简单多,不需要每个月结算了,年底结算一次就可以了, 大家看看,现在这个答案是不是正确了。

#include <iostream> using namespace std;

class Konto // 一个关于存折的类 { private: // 私有 double zinsen; // 月息 double geld; // 存款数目 public: // 共有 Konto(){ zinsen = 0; geld = 0;} // 结构化, 在创建一个对象时,调用此函数 void setZinsen(double theZinsen); // 设置 月息 void rechnen(bool jahrEnde); // 结算 void einsparen(double einsparSumme); // 存款 void geldabheben(double abheben); // 提款 double info(){ return geld;} // 提供帐面情况 void reset(){ geld = 0;} // 对帐面存款数清零 }; void Kont:setZinsen(double theZinsen) { zinsen = theZinsen; } void Kont:rechnen(bool jahrEnde) { if(jahrEnde) geld = geld*(1+zinsen*12); // 依据大家的计算公式,一年后所应得的钱 } void Kont:geldabheben(double abheben) { geld = geld - abheben; } void Kont:einsparen(double einsparSumme) { geld = geld + einsparSumme; }

int main() { Konto myKonto; // 创建对象 myKonto.setZinsen(0.0063); // 设置 月息为 0。63% double geldSumme; // 钱的总数 static double k = 0.; // 一个调制变量, 初始为 0 double einsparen; // 存入数 do { einsparen = 1787 + k; // 我们假定, 第一次存入数为 1787 元 myKonto.einsparen(einsparen); // 将钱存入银行, for(int i = 1; i<=5; i++) // 5 年 循环 { myKonto.rechnen(i); // 每年年底结算 myKonto.geldabheben(1000); // 然后提款1000 元 if(myKonto.info()<0) // 返回帐面信息, 如果已经小于零, 那说明,当初存的钱的数目不够

// 那就不必再循环下去了,所以退出循环,对存款数重新设置 break; } geldSumme = myKonto.info(); // 返回帐面信息, // cout<<geldSumme<<endl; if(geldSumme<-0.001) // 我们认为如果钱款数目界与 0。001 和 -0。001 之间,那么就可以认为等于0 { // 如果当前钱款数目小于 -0。001,说明当初存款数还不够 myKonto.reset(); // 首先清零 k = k+0.0001; // 这个 k 为一个调整书, k 以 0。0001 为单位递增 } else if(geldSumme>0.001) // 如果当前钱款数目大于 0。001,说明当初存款数太多 { k = k-0.0001; // k 以 0。0001 为单位递减 myKonto.reset(); // 账户清零 } else // 如果不是以上情况,说明当初存款数目正好 break; // 退出 do while loop }while(true);

cout<<einsparen<<endl; // 显示当初存款数目 return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-12 19:17
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

gzpjj

我的那个程序是个 c++ 程序,不是 c 风格的程序, 不知道是不是符合你的要求,c++ 对 c 是完全兼容的。

我试着把程序发到你的邮箱里, 可是不成功,你的信箱地址对不对阿?

这里贴程序会吃掉代码,这很让人头疼,希望坛主想办法解决此问题啊。


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-12 19:34
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

TKAI

你的还是错的!


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-12 20:03
快速回复:问题少年又来了~~~!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033371 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved