< Back to forum

rec 2.3 preach love

#include <iostream>

using namespace std;

int main()
{
    long int t;
    cin>>t;
    while(t--)
    {
        char s[1008];
        cin>>s;
        long int n=0,steps=0;
        for(int i=0;s[i]!='\0';i++)
        {
            if(s[i]=='1')n++;
        }
        if(n==1);
        else
        steps++;
        while(n!=1)
        {
            long int m=0;
            while(n!=0)
            {
                int y=n&1;
                if(y==1)
                {
                    m++;
                }
                n=n>>1;
            }
            n=m;
            steps++;
        }
        cout<<steps<<"\n";
    }
    return 0;
}

This code gave the right answers for the test cases but gave wrong answers when i submitted it! what corner test cases am i missing? or is there any mistake in the code? 

Asked by: Aditya_Gupta on April 7, 2019, 6:34 p.m. Last updated on April 7, 2019, 6:34 p.m.


Enter your answer details below:


Enter your comment details below:




1 Answer(s)

avatar

Check your code for the following test case -

1
1000

Expected output is 1, but your solution gives 0.

Siddharth_Garg last updated on April 7, 2019, 6:34 p.m. 0    Reply    Upvote   

Instruction to write good question
  1. 1. Write a title that summarizes the specific problem
  2. 2. Pretend you're talking to a busy colleague
  3. 3. Spelling, grammar and punctuation are important!

Bad: C# Math Confusion
Good: Why does using float instead of int give me different results when all of my inputs are integers?
Bad: [php] session doubt
Good: How can I redirect users to different pages based on session data in PHP?
Bad: android if else problems
Good: Why does str == "value" evaluate to false when str is set to "value"?

Refer to Stack Overflow guide on asking a good question.