#12503: C++簡易參考解答


shawn2000100 (東華財金)


#include <iostream>
using namespace std;

int main()
{
int input, ans;
while (cin >> input && input != 0)
{
for(ans = 0; input > 0 && input % 2 == 1; ans++)
input /= 2;
cout << ans << endl;
}
return 0;
}

#13118: Re:C++簡易參考解答


fantasy_whale (幻光海鯨)


#include
using namespace std;

int main()
{
int input, ans;
while (cin >> input && input != 0)
{
for(ans = 0; input > 0 && input % 2 == 1; ans++)
input /= 2;
cout << ans << endl;
}
return 0;
}


for(ans = 0; input > 0 && input % 2 == 1; ans++)

裡的 input>0 其實是多餘的,因為當input=0時,input%2=0;

 

#13120: Re:C++簡易參考解答


shawn2000100 (東華財金)


#include
using namespace std;

int main()
{
int input, ans;
while (cin >> input && input != 0)
{
for(ans = 0; input > 0 && input % 2 == 1; ans++)
input /= 2;
cout << ans << endl;
}
return 0;
}


for(ans = 0; input > 0 && input % 2 == 1; ans++)

裡的 input>0 其實是多餘的,因為當input=0時,input%2=0;

感謝提醒阿哈哈哈   
突然看到自己快半年前寫的CODE  希望有幫助到新手就好~~~~

下面是更短更有效率的寫法 :

 #include <iostream>

using namespace std;

 

int main() {

    int input, ans;

    while ( cin >> input && input ) {

        for ( ans = 0; (input & 1); ++ans )

            input >>= 1;

        cout << ans << endl;

    }

    return 0;

}

 




#19901: Re:C++簡易參考解答


s1082951 (Amadeus)


#include
using namespace std;

int main()
{
int input, ans;
while (cin >> input && input != 0)
{
for(ans = 0; input > 0 && input % 2 == 1; ans++)
input /= 2;
cout << ans << endl;
}
return 0;
}


for(ans = 0; input > 0 && input % 2 == 1; ans++)

裡的 input>0 其實是多餘的,因為當input=0時,input%2=0;

感謝提醒阿哈哈哈   
突然看到自己快半年前寫的CODE  希望有幫助到新手就好~~~~

下面是更短更有效率的寫法 :

 #include

using namespace std;

 

int main() {

    int input, ans;

    while ( cin >> input && input ) {

        for ( ans = 0; (input & 1); ++ans )

            input >>= 1;

        cout << ans << endl;

    }

    return 0;

}

 



想問一下,為什麼你這樣寫就不會超時呢???

我跟你寫的幾乎一樣,但是一直超時




#19903: Re:C++簡易參考解答


s1082951 (Amadeus)


#include
using namespace std;

int main()
{
int input, ans;
while (cin >> input && input != 0)
{
for(ans = 0; input > 0 && input % 2 == 1; ans++)
input /= 2;
cout << ans << endl;
}
return 0;
}


for(ans = 0; input > 0 && input % 2 == 1; ans++)

裡的 input>0 其實是多餘的,因為當input=0時,input%2=0;

感謝提醒阿哈哈哈   
突然看到自己快半年前寫的CODE  希望有幫助到新手就好~~~~

下面是更短更有效率的寫法 :

 #include

using namespace std;

 

int main() {

    int input, ans;

    while ( cin >> input && input ) {

        for ( ans = 0; (input & 1); ++ans )

            input >>= 1;

        cout << ans << endl;

    }

    return 0;

}

 



想問一下,為什麼你這樣寫就不會超時呢???

我跟你寫的幾乎一樣,但是一直超時