Hackerrank For Loop Solution

Hackerrank For Loop Solution

A for loop is a programming language statement which allows code to be repeatedly executed.

The syntax for this is

for ( <expression_1> ; <expression_2> ; <expression_3> )
    <statement>
  • expression_1 is used for intializing variables which are generally used for controlling terminating flag for the loop.
  • expression_2 is used to check for the terminating condition. If this evaluates to false, then the loop is terminated.
  • expression_3 is generally used to update the flags/variables.

A sample loop will be

for(int i = 0; i < 10; i++) {
    ...
}

Input Format

You will be given two positive integers,  and  (), separated by a newline.

Output Format.MathJax_SVG_LineBox {display: table!important} .MathJax_SVG_LineBox span {display: table-cell!important; width: 10000em!important; min-width: 0; max-width: none; padding: 0; border: 0; margin: 0}

For each integer  in the interval  :

  • If , then print the English representation of it in lowercase. That is "one" for , "two" for , and so on.
  • Else if  and it is an even number, then print "even".
  • Else if  and it is an odd number, then print "odd".

Note:

Sample Input

8
11

Sample Output

eight
nine
even
odd

Solution in cpp

Approach 1.

#include <iostream>
#include <cstdio>
using namespace std;

const char *digits[] = {"one","two","three","four","five","six","seven","eight","nine"};

int main() {
    // Complete the code.
    int a;
    int b;
    cin >> a;
    cin >> b;
    while(b >= a ){
        if((a >= 1) && (a <= 9))
            cout << digits[a-1] << endl;
        else{
            if( (a % 2) == 0)
                cout << "even" << endl;
            else
                cout << "odd" << endl;          
        }
        ++a;
    }
    return 0;
}

Approach 2.

#include <iostream>
#include <cstdio>
#include <string>
#include <stdexcept>
using namespace std;

int main() {
    // Complete the code.
    int a, b;
    cin >> a;
    cin >> b;
    
    if (a < 1 || b < 1 || a > b)
        throw invalid_argument("invalid input");
    
    string result[9] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    for (int i = a; i <= b; ++i) {
        if (1 <= i && i <= 9)
            cout << result[i-1] << endl;
        else
            cout << ((i & 1) ? "odd" : "even") << endl;
    }
    return 0;
}

Approach 3.

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    int a,b;
    cin>>a>>b;
    for(int n=a;n<=b;n++){
    if(n==1)
        cout<<"one"<<endl;
    else if(n==2)
        cout<<"two"<<endl;
    else if(n==3)
        cout<<"three"<<endl;
    else if(n==4)
        cout<<"four"<<endl;
    else if(n==5)
        cout<<"five"<<endl;
    else if(n==6)
        cout<<"six"<<endl;
    else if(n==7)
        cout<<"seven"<<endl;
    else if(n==8)
        cout<<"eight"<<endl;
    else if(n==9)
        cout<<"nine"<<endl;
    else if(n%2==0)
        cout<<"even"<<endl;
    else
        cout<<"odd"<<endl;
    }
    return 0;
}