1

数値を取り込んで、その平方根を出力するプログラムを作成する必要があります。例 - 45 --> 3√5. プログラムを作成しましたが、入力したのと同じ数を返すだけです。助けていただければ幸いです。ここに私のコードがあります -->

#include<iostream>
using namespace std;


int squarerootfinder(int number, int divisor){
     if(divisor == 1){

            return 1;
     }
     else{

            if((number / (divisor * divisor))% 1 != 0){

                    divisor = squarerootfinder(number, divisor - 1);

            }
            if((number/ (divisor * divisor)) % 1 == 0 ){
            return divisor;

            }

      }

}
int main(){
     int number;
     cout << "Enter a number to find the square root of it \n";
     cin >> number;
     int divisor = number;
     int squareroot;
     squareroot = squarerootfinder(number, divisor);
     cout << squareroot << endl;
     return 0;
}
4

2 に答える 2

2

この行の2つの問題は、どちらも整数型に関連しています。

if((number / (divisor * divisor))% 1 != 0){

整数演算の結果が整数であることを思い出して、関数に入る最初の値のセットの値は何ですか?5であると仮定numberします。

5/(5*5) = 5/25 = 0

同じことが。にも当てはまります% 1。intは常に整数であるため、1で変更すると常に0が返されます。

于 2012-04-14T03:53:52.280 に答える