私は様々な企業がインタビューで尋ねる質問にちょうど挑戦していました。私は1つが「精度の数値の平方根を求めていることがわかりました。関数定義はこのようなものでなければなりません:double getSquareRoot(int num, int precision)
」。精度が平方根であることを知るには
私は平方根を与えるが、精度を気にしない一つの小さな機能に書いた:
double getSquareRoot(int num){
int num1=0, num2=0;
for(int i=1 ;; i++){
if(i*i == num){
std::cout<<i <<" is the sq root"<<std::endl;
break;
}
else if(i*i > num){
num2 = i;
num1 = --i;
break;
}
}
// in the above for loop, i get the num1 and num2 where my input should lie
// between them
// in the 2nd loop below.. now i will do the same process but incrementing
// by 0.005 each time
for(double i =num1;i<(double)num2;i+=0.005)
{
if(i*i>= num){
std::cout<<(double)i <<" is the sq root"<<std::endl;
break;
}
}
}
今精度に到達することを、私はループし、すべての場合には追加のようないくつかの調整を行う必要があります。私はそれが好きではない。あなたはここで私を助けてくれますか?コードを書いているなら、説明してください。私はそれをお願い申し上げます。
ありがとうございました。
このコードは非常に不十分で、問題の「この精度まで」は考慮しません。私はそれを書いたので、あなたは、私がちょっと試したとは思っていません。 これは
です。
これは、C++のインタビューのための愚かな質問の1つです。そのためには、そのことを行うアルゴリズムを知る必要があります。 –
精度パラメータは何を意味しますか? 'getSquareRoot(10、4)'が返すと思われるものは何ですか? –
それは3.XXXXのようなものを与えるべきです。質問してくれてありがとう。 –