NC205829. 解方程
描述
输入描述
三个正整数
输出描述
如果解存在,请输出方程的解x的值,若你和正确答案的误差不超过 ,则认为你的答案正确。
如果解不存在,则输出。
示例1
输入:
3 5 1
输出:
1.00000000000000
C(clang 3.9) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2020-09-09 14:48:19
#include<stdio.h> #include<math.h> int main(){ double x=1; double a,b,c; scanf("%lf %lf %lf",&a,&b,&c); while(fabs(pow(x,a)+b*log(x)-c)>=0.0000001){ x=x-(pow(x,a)+b*log(x)-c)/(a*pow(x,a-1)+b/x); } printf("%.14f",x); return 0; }
C++(clang++11) 解法, 执行用时: 11ms, 内存消耗: 528K, 提交时间: 2021-01-21 17:07:13
#include<bits/stdc++.h> using namespace std; int main() { double x=1.0; int a,b,c; scanf("%d%d%d",&a,&b,&c); while(abs(pow(x,a)+b*log(x)-c)>=1e-7) { x=x-(pow(x,a)+b*log(x)-c)/(a*pow(x,a-1)+b/x); } printf("%.8lf\n",x); }
C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 472K, 提交时间: 2023-03-06 16:08:26
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c;cin>>a>>b>>c; double x=1; while(fabs(pow(x,a)+b*log(x)-c)>0.0000001) { x=x-(pow(x,a)+b*log(x)-c)/(a*pow(x,a-1)+b/x); } printf("%.14f",x); return 0; }
Python3(3.9) 解法, 执行用时: 44ms, 内存消耗: 6864K, 提交时间: 2021-04-08 21:28:51
import math a,b,c=map(int,input().split()) l=c r=0 while r<l: mid=(r+l)/2 f=mid**a+b*(math.log(mid)) if abs(f-c)<0.0000001: break if f>c: l=mid else:r=mid print('%.14f'%mid)