代码如下:
#includefloat slove(int modulus_0pow,int modulus_1pow,int modulus_2pow,int modulus_3pow,float root) { float root_0; float function_value; float derivative; float constant; root_0 = root; while(function_value <= 0.1) { if(root != root_0) { root = -constant / derivative; } function_value = modulus_3pow * root * root * root + modulus_2pow * root * root + modulus_1pow * root + modulus_0pow; derivative = 3 * modulus_3pow * root * root + 2 * modulus_2pow * root + modulus_1pow; constant = function_value - derivative * root; } return root; } int main() { int modulus_0pow; int modulus_1pow; int modulus_2pow; int modulus_3pow; float root; printf("Please input the modulus_(0~3)pow:\n"); scanf("%d",&modulus_0pow); scanf("%d",&modulus_1pow); scanf("%d",&modulus_2pow); scanf("%d",&modulus_3pow); printf("Please input the root:\n"); scanf("%d",&root); root = slove(modulus_0pow,modulus_1pow,modulus_2pow,modulus_3pow,root); printf("root:%.4f\n",root); return 0; }
此段代码可能会出错,慎用,但是思路很清晰!