第三十五课 问题求解方法——迭代

项目一 【另类求和】

    求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字。
例如2+22+222+2222( 此时a=2,n=4),a和n均由键盘输入。
请在下面的代码基础上补充完整。

代码:

#include <stdio.h>
int main( )
{int a,n,count=1,Sn=0,Tn=0;printf("请输入 a 和 n 的值:\n");scanf("%d %d",&a,&n);while (count<=n){Tn=Tn*10+a;Sn=Sn+Tn;count++;}printf("a+aa+aaa+...=%d\n",Sn);return 0;
}

运行结果:

项目二 【反弹的皮球】

    一球从的100米高度自由落下,每次落地后反跳回原来高度的一半,再落下,求它在第十次落地时,共经过多少米?第十次反弹多高?
请在下面的代码基础上补充完整。

代码:

#include<stdio.h>
int main()
{float sn=100.0,hn=sn/2;int n;for (n=2;n<=10;n++){sn=sn+hn*2;hn=hn/2;}printf("第10次落地时共经过%f米。\n",sn);printf("第10次反弹%f米。\n",hn);return 0;
}

运行结果:

项目三 【Bessel函数】
    Bessel函数Jn(X)有以下的递推关系:


  编写程序,利用递推关系,由任意的n和x≠0求Jn(X)。

代码:

#include<stdio.h>
#include<math.h>
int main()
{double jn,j1,j0,x;int n,count=2;printf("请输入x和n:\n");scanf ("%lf%d",&x,&n);j0=sin(x)/x;j1=sin(x)/(x*x)-cos(x)/x;while (count<=n){jn=(2*count-1)/x*j1-j0;j0=j1;j1=jn;count++;}printf("%4f",jn);return 0;
}

运行结果:

项目四 【贪财的富翁】

     一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编程序,通过计算说明,这个换钱计划对百万富翁是否是个划算的交易。
提示:(1)需要计算出30天后陌生人给了百万富翁多少钱,百万富翁给了陌生人多少钱,然后才能做出判断;(2)想要看得清楚,可以选择列出每一天双方交易获得的钱数。

代码:

#include<stdio.h>
int main()
{int i=1,t1=100000,sum1=0;double sum2=0.0,t2=0.01;while (i<=30){sum1=sum1+t1;sum2=sum2+t2;t2=t2*2;printf("第%d天,富翁得到%d,陌生人得到%.2f\n",i,sum1,sum2);i++;}if (sum1>sum2)printf("\n富翁稳赚");else{if (sum1<sum2)printf ("\n陌生人稳赚");elseprintf("\n公平交易");}return 0;
}

运行结果:

项目五 【在北京买房】

    现在北京有一套房子,价格200万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子? 

代码:

#include<stdio.h>
int main()
{int i=1,t2=400000;double s1=2000000.0,s2=0.0,t1=0.0;while (i<=80){s1=s1+t1;t1=s1*0.1;s2=s2+t2;printf ("第%d年,房价%.0f,积蓄%.0f\n",i,s1,s2);i++;}if (s1<s2)printf("%d年后,终于等到你。。\n",i);elseprintf("来世再努力吧!\n");return 0;
}

运行结果:

扩展1:

    这位软件工程师没有理财意识,不去投资,也不至于将现金堆在家里吧,至少应存到银行,吃点利息(考虑通胀因素,可能仍亏,但比放家里现金收益高也安全)。按存1年定期,重新求解上面的问题。

代码:

#include<stdio.h>
int main()
{int i=1,t2=400000;double s1=2000000.0,s2=0.0,t1=0.0,j2=0.0;while (i<=80){s1=s1+t1;t1=s1*0.1;j2=s2*0.015;s2=s2+t2+j2;printf ("第%d年,房价%.0f,积蓄%.0f\n",i,s1,s2);i++;}if (s1<s2)printf("%d年后,终于等到你。。\n",i);elseprintf("来世再努力吧!\n");return 0;
}

运行结果:

扩展2:

    软件工程师不涨工资不对。工作经验、效率逐年提高,这家公司不给涨,会找另一家给涨工资的公司做。假如每年工资涨5%,结果又是如何呢?

代码:

#include<stdio.h>
int main()
{int i=1,t2=400000;double s1=2000000.0,s2=0.0,t1=0.0;while (i<=80){s1=s1+t1;t1=s1*0.1;s2=s2+t2;t2=s2*1.05;printf ("第%d年,房价%.0f,积蓄%.0f\n",i,s1,s2);i++;}if (s1<s2)printf("%d年后,终于等到你。。\n",i);elseprintf("来世再努力吧!\n");return 0;
}

运行结果:

不知道对不对啊,为什么怎样都买不到房啊。。。泪飘。。

知识点与总结:

     1、迭代真的太精细了,把一些有关联的数据组成可代替的关系式,就形成了迭代的体系,一个解法也许有很多种,但是要找到一个精简又精确的就少了,应该多在这方面下功夫。

2、为了每次循环输出结果,可以把初值设置成0,或者在 printf 输出后的下一行进行 i++ 。

3、如果迭代的第一次循环把第二次的数据算进去了,可能是循环过程中迭代或循环体的位置靠前了,适当调整到输出的那个变量的后面。

132

第三十五课 问题求解方法——迭代 【项目1-5】相关推荐

  1. NeHe OpenGL第三十五课:播放AVI

    NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...

  2. C语言笔记 第三十五课 数组参数和指针参数分析

    第三十五课 数组参数和指针参数分析 思考:为什么C语言中的数组参数会退化为指针? 退化的意义 C语言中只会以值拷贝的方式传输参数 当向函数传递数组时:(错误的,设计当初的思路) 将整个数组拷贝一份传入 ...

  3. 第三十五课.基于贝叶斯的深度学习

    目录 贝叶斯公式 基础问题 贝叶斯深度学习与深度学习的区别 贝叶斯神经网络与贝叶斯网络 贝叶斯神经网络的推理与学习 前向计算 学习 贝叶斯公式 首先回顾贝叶斯公式:p(z∣x)=p(x,z)p(x)= ...

  4. 第三十五课 redis

    21.9 redis介绍 Redis和Memcached类似,也属于k-v数据存储 什么是 key value 存储? JAVA 中的 map 就是 key=>value 存储的.键 => ...

  5. 【问链财经-区块链基础知识系列】 第三十五课 区块链跨境贸易完全简析

    一.跨境贸易存在的问题 在国际跨境贸易中,数据和信息无疑是贯穿整个业务流程的重要要素,数据流的打通对于国际跨境贸易至关重要.然而,恰恰是因为数据在业务中所扮演的重要角色,其对各参与方而言都是私密且重要 ...

  6. 第三十五课:多普勒效应和宇宙大爆炸

    1.声音的多普勒效应: 多普勒移频方程 :f'= f(v声音-v接受)/(v声音-v发射) 接收方与发射方的移动存在很大的不对称性 2.电磁波也存在移频 f' = f ( (1-β)/(1+β))1/ ...

  7. AGG第三十五课 gsv_text 渲染ASCII字符

    代码 agg::rendering_buffer &rbuf = rbuf_window(); agg::pixfmt_bgr24 pixf(rbuf); typedef agg::rende ...

  8. 新版标准日本语初级_第三十五课

    语法   1. 小句1たら,小句2:~たら用于表示假定条件.其接续方式是把过去形式的た换成たら.不过,二类形和名词的过去否定形式~ではなかった后续たら时,要去掉其中的は变成~でなかったら. 明日雨が降 ...

  9. JAVASE基础模块三十五( 线程 线程创建的第一种方法 以及线程的一些方法)

    JAVASE基础模块三十五( 线程 线程创建的第一种方法 以及线程的一些方法) 线程 首先要清楚的是 线程依赖于进程 进程 是 正在运行的应用程序 一个正在运行的应用程序 是个进程 这个应用程序又要执 ...

最新文章

  1. 简单网页设计之表格版
  2. 学好python工资一般多少钱-Python工资多少?就业发展前景怎么样?
  3. 使用python下载文件_python使用socket实现上下载文件功能
  4. hyperf自定义注解类_swoole学习六hyperf注解的使用
  5. 在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句
  6. mysql 授权用户_MySQL创建用户与授权
  7. dj鲜生-02-抽象基类的创建
  8. SpringBoot学习(五)
  9. 剑指offer——21.调整数组顺序使奇数位于偶数前面
  10. java io读取文件_java io读取文件操作代码实例
  11. 解决flash的虚框问题
  12. 算法成华纳旗下歌手?背景音乐经济
  13. Acrobat如何将word文件转换成pdf格式
  14. 【邻接表】77 邻接表:顶点u的下一个邻接点
  15. RoboMaster汇总
  16. 什么是雅可比矩阵?利用雅可比矩阵分析动力学
  17. RabbitMQ实现延迟消息
  18. 夏天多吃这4种食材,去暑祛火又预防疾病!
  19. 惠普gk100好不好_机械键盘惠普GK100感受(小白)
  20. 【智力题】:毒酒问题

热门文章

  1. 代理服务,让私有云服务器更自由
  2. 中国CAD公司市场分析
  3. 如何在PKPM中统计结构的钢筋含量?
  4. 用html做qq会员页面导航,untitledQQ会员页面导航.html
  5. DingTalk - 如何设置钉钉群直播静音?
  6. 5、如何搭建卫星地图离线地图服务
  7. 【数据集处理】Python修改图片为.jpg格式批量修改名字为000000格式
  8. 华为手机双卡有android,华为今后再无双卡双通手机 Mate 8成绝唱
  9. CV环境很重要!!各种环境搭建大全
  10. 【 华为OD机试 2023】积木最远距离(C++ Java JavaScript Python 100%)