C++1001.F函数

终于更新大家期待已久的信息学奥赛内容了,其实因为信息学奥赛内容其实不是特别受粉丝欢迎,所以我更新的异常慢,今天我抽出时间更新一下吧!

F函数目前是OJ网站里面(jsswoj.com)第一道题,所以我来给大家讲解一下,并且用不同语言来做出来

题目描述

已知,输入x和n的值,计算f(x,n)的值。

输入 

一行两个数x和n,其中x是实数,n是整数。1<=x,n<=20。

输出

输出f(x,n)的值,答案保留两位小数。

样例输入

4.2 10

样例输出

3.68

这道题其实非常简单(把我弟难倒了),其实题目都已经提示了,这不明摆着要用函数吗,所以我们先推断一下主要思维

其实那张图可以代表一切,需要用到cmath头文件,然后再用return代去计算

图里面那个大大的对号其实意思是X的根

然后我们看一下C++的AC代码

#include<cstdio>
#include<cmath>
using namespace std;
double x;
int n;
double solve(double x,int n){
	if(n == 1)
		return 1 + x;
	else
		return n + sqrt(solve(x,n - 1));
}
int main()
{
	scanf("%lf%d",&x,&n);
	double ans = solve(x,n);
	printf("%.2lf",sqrt(ans));
	return 0;
} 

但是作为王的男人,不能局限于一种语言,于是我用C++11的来编写

#include<cstdio>
#include<cmath>
using namespace std;
double dg(int n,double x)
{
	if(n==1)
		return sqrt(1+x);
	else
		return	sqrt(n+dg(n-1,x));
}
int main()
{
	double x;
	int n;
	scanf("%lf %d",&x,&n);
	printf("%.2lf",dg(n,x));
	return 0;
}

然后再用Pascal语言去编写

var
        b,i:longint;
        a,s:real;

begin
        readln(a,b);
        s:=a;
        for i:=1 to b do
                s:=sqrt(s+i);
        writeln(s:0:2);
end.

本人创作不易,麻烦点个赞谢谢👍👍👍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值