【C语言】问答总结 | 神奇的迭代公式两种解法
题目
有一个神奇的迭代公式:xn+1 = x n + 2 \sqrt{x_{n+2}} xn+2 ,无论 x 的初值(正数)选的多么大,若干次迭代之后,都与 2 无限接近,也就是说 x 序列的极限是 2。假设x0=99999999.0 (8 个 9),编写程序,输入一个正整数 n,输出 xn 的值(保留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语言】问答总结 | 神奇的迭代公式两种解法相关推荐
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
- c语言返回二叉树的大小,C语言中计算二叉树的宽度的两种方式
C语言中计算二叉树的宽度的两种方式 二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧. 采用递归方式 下面是代码内容: int GetMaxWidth( ...
- C语言中存储多个字符串的两种方式
C语言中存储多个字符串的两种方式 方式一 二维字符串数组 声明: char name[4][10] = { "Justinian", "Momo", " ...
- 用c语言求1 n的素数个数 给出两种解法,【题目】求n以内的素数个数
最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ...
- 青蛙跳台阶c语言递归函数,青蛙跳台阶问题的四种解法
http://raychase.iteye.com/blog/1337359 题目:一只青蛙一次可以跳1级台阶,也可以跳2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 这道题还被ITEye放在了博 ...
- c语言中的文件类型只有文本文件一种,C语言中的文件类型只有哪两种_后端开发...
pycharm能干嘛_后端开发 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示 ...
- 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,基于SCM和PLC的两种步进电机控制方法...
引 言 步进电机位移与输入脉冲信号数相对应,精度高.响应特性好.可靠性高.速度可在较宽范围内平滑调节,是控制系统中一种重要的自动化执行元件. SCM(Single Chip Microcomputer ...
- 易语言链接mdb和accdb数据库的两种方法
易语言链接Access数据库经常会遇到链接错误,其实主要是看你的电脑 Microsoft Access的版本,也就是要看看你数据库文件的后缀是 .mdb还是.accdb PS: access2003以 ...
- C语言 拨钟问题的两种解法。
拨钟问题 描述 有9个时钟排成一个3*3的矩阵,从上到下从左到右依次标为ABCDEFGHI. 每个时钟只有1个时针,时针初始指向3.6.9或12点. 对每一个时钟的时针共允许有9种不同的移动,每个移动 ...
最新文章
- Android 马甲包制作流程
- python两个集合的交集 合集 差集
- 关于跨域 Response to preflight request doesn‘t pass access control check
- vue设置一个简单的计算器
- ib课程计算机科学内容,新的IB计算机课程主要学习什么内容?有什么新的特点呢?...
- Latex排版全解(转)
- 【CF1344D】Résumé Review【数学】【二分】
- Python模块——subprocess
- Java-打印三角形
- TreeView控件问题汇总
- [原创]游戏合服时如何避免主键冲突
- javascript毫秒计时器_JS制作计时器毫秒
- word鼠标右下角有一个小方块_word
- BurpSuite+Proxifer 抓取PC客户端HTTP数据包
- 三步解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
- nuc977 linux i9341 2.8寸lcd配置
- 报错:WebMvcConfigurer.class cannot be opened because it does not exist
- Spring Boot(二):外部配置文件(超级详细)
- matlab中minigrid,[转载][转载]matlab画地图的工具:worldmap和m_map
- 没有什么能够毁灭一个人的灵魂
热门文章
- 文艺复兴的核心是“以人为本”:圣母百花大教堂(Duomo)
- 用计算机弹醉赤壁,醉赤壁-林俊杰-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
- IDEA+Java+SSH+Bootstrap+Mysql实现在线考试系统(含论文)
- iview实现视频文件上传
- Ubuntu windows双系统安装
- rtp负载mp3音频
- 阿里旺旺聊天发包CALL发送消息
- Qt实现360桌面精灵
- 不精确推理-模糊关系和模糊逻辑
- DWGTool Acme CAD Converter 2020中文版