请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数相关的知识,希望对你有一定的参考价值。
代码如下: def f(x): s=(a*x)**3+(b*x)**2+(c*x)+d return s a=int(input("a")) b=int(input("b")) c=int(input("c")) d=int(input("d")) for i in range(-100,100,1): x1=int(i) x2=int(i+1) if f(x1)*f(x2)<0: lo,hi=x1,x2 while hi-lo>0.01: mid=(lo+hi)/2 if f(lo)*f(mid)<0: hi=mid else: lo=mid return mid else: pass print(mid)
代码有两个地方有问题1:19行的return缩进有问题,19行的return不应该出现在一个非方法的地方
2: 代码有可能出现死循环,在我输入a:10, b:10, c:10, d:10的时候出现死循环,请检查代码逻辑
我已经调整好了
def f(x):
s=(a*x)**3+(b*x)**2+(c*x)+d
return s
a=int(input("a"))
b=int(input("b"))
c=int(input("c"))
d=int(input("d"))
mid = 0
for i in range(-100,100,1):
x1=int(i)
x2=int(i+1)
if f(x1)*f(x2)<0:
lo,hi=x1,x2
while hi-lo>0.01:
mid=(lo+hi)/2
if f(lo)*f(mid)<0:
hi=mid
else:
lo=mid
else:
pass
print mid 参考技术A
C语言代码求差错,谢谢大佬!
给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
如:
输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
我的代码如下,请问错在哪里
int removeDuplicates(int* nums, int numsSize)
if(numsSize==NULL)
return;
int i=0,x=0;
for(int j=0;j<numsSize;j++)
if(nums[i]!=nums[j]&&(j-i)==3)
i=j-1;
nums[i]=nums[j];
x++;
return numsSize-x+1;
看起来要求输入2个参数,
实际你只输入了一个参数是不是输入少了,导致的! 参考技术B int removeDuplicates(int* nums, int numsSize)
int cnt = 0, value = nums[0], res = 0;
for(int i = 0; i < numsSize; ++i)
if(nums[i] == value) cnt++;
else cnt = 1; value = nums[i];
if(cnt <= 2) nums[res++] = nums[i];
return res;
以上是关于请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数的主要内容,如果未能解决你的问题,请参考以下文章
请问c++这个程序中总显示着else与if不匹配,请问大家错在哪里了?
关于CSS滤镜设置的问题,为啥网页显示不出来效果,变不了灰色,帮忙查看一下代码看看错在哪里,谢谢