c-使用分治法找到数字的第n个根
作者:互联网
我需要有关如何获得某个数字的第n个根的帮助.
用户输入数字n和要作为其根的数字.我需要在没有cmath lib和分而治之的情况下解决此问题.
这是我的尚不可用的代码:
#include<iostream>
using namespace std;
float pow(float a,float c){
if (a == 0)
return 0;
else if(a == 1)
return 1;
else{
float p = pow(a,(c/2));
if(c%2)
return p*p*a;
else
return p*p;
}
}
int main(){
float a,b;
float c;
cout << "Enter positive number:(base)" << endl;
do{
cin >> a;
}while (a < 0);
cout << "Enter number: (root)" << endl;
cin >> b;
c = 1/b;
cout << "Result:"<<pow(a,c) << endl;
system("pause");
return 0;
}
关于如何解决此问题的任何想法都将是有用的.
解决方法:
让我告诉您如何使用分治法来求平方根.第n个根将是相似的.
对于给定的x,您需要搜索0到x之间的平方根.将其除以2 = x2.如果x2 * x2< x,然后您的搜索空间移至x2-> x否则为0-> X2.如果x2 * x2与x匹配,则您的平方根为x2.第n个根的类似技术.
标签:c,algorithm,divide-and-conquer,cmath 来源: https://codeday.me/bug/20191009/1879207.html