题目

  有一个神奇的迭代公式:x​n+1 ​​​= x ​ n ​ + 2 ​​​ \sqrt{x_{​n​+2}​​​} x​n​+2​​​​ ​,无论 x 的初值(正数)选的多么大,若干次迭代之后,都与 2​​​ 无限接近,也就是说 x 序列的极限是 2​​​。假设x​0​​=99999999.0 (8 个 9),编写程序,输入一个正整数 n,输出 x​n ​​的值(保留10位小数)。

样例1

输入样例

8

输出样例

x[8]=2.0051798692

样例2

输入样例

16

输出样例

x[16]=2.0000000790

解法一:while 循环

相关知识

  当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。这个就是 while 的执行顺序。

语法格式

while (表达式)
{语句;
}

代码

#include <stdio.h>
#include <math.h>int main() {int n,i;double xn= 99999999.0;scanf("%d", &n);i = n;while (i>0){xn = sqrt(xn + 2);i--;}printf("x[%d]=%.10f", n, xn);
}

运行效果

解法二:调用自定义函数

相关知识

有参函数的定义

dataType  functionName( dataType1 param1, dataType2 param2 ... ){//body
}

  函数可以只有一个参数,也可以有多个,多个参数之间由 “ , ”分隔。参数本质上也是变量,定义时要指明类型和名称。与无参函数的定义相比,有参函数的定义仅仅是多了一个参数列表。

数据通过参数传递到函数内部进行处理,处理完成以后再通过返回值告知函数外部。

代码

#include <stdio.h>
#include <math.h>
double func(int n)
{if (n == 0) {return 99999999.0;}return sqrt(func(n - 1) + 2);
}
int main() {int n;scanf("%d", &n);printf("x[%d]=%.10f", n, func(n));

运行效果

总结

  以上就是本人对这道题的 C 语言程序解法,相信大家也会有不同的解法,可以在评论区打出其他解法哦,如有问题请批评指正,谢谢。

【C语言】问答总结 | 神奇的迭代公式两种解法相关推荐

  1. python字符串成熟编码_python字符串转公式两种方法获取网页编码python版

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  2. c语言返回二叉树的大小,C语言中计算二叉树的宽度的两种方式

    C语言中计算二叉树的宽度的两种方式 二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧. 采用递归方式 下面是代码内容: int GetMaxWidth( ...

  3. C语言中存储多个字符串的两种方式

    C语言中存储多个字符串的两种方式 方式一 二维字符串数组 声明: char name[4][10] = { "Justinian", "Momo", " ...

  4. 用c语言求1 n的素数个数 给出两种解法,【题目】求n以内的素数个数

    最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ...

  5. 青蛙跳台阶c语言递归函数,青蛙跳台阶问题的四种解法

    http://raychase.iteye.com/blog/1337359 题目:一只青蛙一次可以跳1级台阶,也可以跳2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 这道题还被ITEye放在了博 ...

  6. c语言中的文件类型只有文本文件一种,C语言中的文件类型只有哪两种_后端开发...

    pycharm能干嘛_后端开发 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示 ...

  7. 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,基于SCM和PLC的两种步进电机控制方法...

    引 言 步进电机位移与输入脉冲信号数相对应,精度高.响应特性好.可靠性高.速度可在较宽范围内平滑调节,是控制系统中一种重要的自动化执行元件. SCM(Single Chip Microcomputer ...

  8. 易语言链接mdb和accdb数据库的两种方法

    易语言链接Access数据库经常会遇到链接错误,其实主要是看你的电脑 Microsoft Access的版本,也就是要看看你数据库文件的后缀是 .mdb还是.accdb PS: access2003以 ...

  9. C语言 拨钟问题的两种解法。

    拨钟问题 描述 有9个时钟排成一个3*3的矩阵,从上到下从左到右依次标为ABCDEFGHI. 每个时钟只有1个时针,时针初始指向3.6.9或12点. 对每一个时钟的时针共允许有9种不同的移动,每个移动 ...

最新文章

  1. Android 马甲包制作流程
  2. python两个集合的交集 合集 差集
  3. 关于跨域 Response to preflight request doesn‘t pass access control check
  4. vue设置一个简单的计算器
  5. ib课程计算机科学内容,新的IB计算机课程主要学习什么内容?有什么新的特点呢?...
  6. Latex排版全解(转)
  7. 【CF1344D】Résumé Review【数学】【二分】
  8. Python模块——subprocess
  9. Java-打印三角形
  10. TreeView控件问题汇总
  11. [原创]游戏合服时如何避免主键冲突
  12. javascript毫秒计时器_JS制作计时器毫秒
  13. word鼠标右下角有一个小方块_word
  14. BurpSuite+Proxifer 抓取PC客户端HTTP数据包
  15. 三步解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  16. nuc977 linux i9341 2.8寸lcd配置
  17. 报错:WebMvcConfigurer.class cannot be opened because it does not exist
  18. Spring Boot(二):外部配置文件(超级详细)
  19. matlab中minigrid,[转载][转载]matlab画地图的工具:worldmap和m_map
  20. 没有什么能够毁灭一个人的灵魂

热门文章

  1. 文艺复兴的核心是“以人为本”:圣母百花大教堂(Duomo)
  2. 用计算机弹醉赤壁,醉赤壁-林俊杰-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
  3. IDEA+Java+SSH+Bootstrap+Mysql实现在线考试系统(含论文)
  4. iview实现视频文件上传
  5. Ubuntu windows双系统安装
  6. rtp负载mp3音频
  7. 阿里旺旺聊天发包CALL发送消息
  8. Qt实现360桌面精灵
  9. 不精确推理-模糊关系和模糊逻辑
  10. DWGTool Acme CAD Converter 2020中文版