0

私のコーディングを手伝ってください。このようなプログラムを作りたいです。悪い英語ですみません。

与えられた入力:

N  
where N is an integer. 

戻る:

True  if N = 2^x, where x is an integer.

私はこれをやろうとしましたが、私が望むようには機能しません。

using namespace std;
int main()
{
    float a,b,c;
    cin>>a;
    c=log10(a)/log10(2.0);
    b=pow(2,c);
    if(b==a)
    {
        cout<<"TRUE"<<endl;}
    else
        cout<<"FALSE"<<endl;{
    }
}

お願い助けて。ありがとうございました。

4

3 に答える 3

0

この c=log10(a)/log10(2.0); を使用する場合は、値 a、b、c を double として宣言します。

この c=log10(a)/log10(2.0f); を使用する場合は、値 a、b、c を float として宣言します。

これらの両方の変更を1つずつ加えてプログラムを実行しました。両方で機能するため、構文と例を確認してくださいここ

于 2013-05-27T05:08:23.210 に答える