Question #38176

write a c++ program which reads a three digit number and generate all the possible permutation of numbers using the above digits.
1

Expert's answer

2014-01-09T10:24:24-0500

// Answer on Question#38176 - Programming - C++


#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    int number = 0;
    int digits[3];
    // read a three digit number from console
    while (number < 100 || number > 999) {
        cout<<"Enter a three digit number:\n";
        cin>>number;
    }
    // get 3 digits of the number
    digits[0] = number % 10;
    digits[1] = (number / 10) % 10;
    digits[2] = number / 100;
    // generate all different permutations
    cout<<"Permutations:\n";
    // all digits are the same
    if (digits[0] == digits[1] && digits[1] == digits[2]) {
        cout<<number<<endl;
    }
    else {
        // all digits are different
        if (digits[0] != digits[1] && digits[1] != digits[2] && digits[2] != digits[0]) {
            cout<<digits[2] * 100 + digits[1] * 10 + digits[0]<<endl;
            cout<<digits[2] * 100 + digits[0] * 10 + digits[1]<<endl;
            cout<<digits[1] * 100 + digits[0] * 10 + digits[2]<<endl;
            cout<<digits[1] * 100 + digits[2] * 10 + digits[0]<<endl;
            cout<<digits[0] * 100 + digits[1] * 10 + digits[2]<<endl;
            cout<<digits[0] * 100 + digits[2] * 10 + digits[1]<<endl;
        }
        else {
            // 2 digits are equal
            if (digits[0] == digits[1]) {
                cout<<digits[2] * 100 + digits[1] * 10 + digits[0]<<endl;
                cout<<digits[1] * 100 + digits[0] * 10 + digits[2]<<endl;
                cout<<digits[1] * 100 + digits[2] * 10 + digits[0]<<endl;
            }
            else {
                if (digits[0] == digits[2]) {
                    cout<<digits[2] * 100 + digits[1] * 10 + digits[0]<<endl;
                    cout<<digits[2] * 100 + digits[0] * 10 + digits[1]<<endl;
                    cout<<digits[1] * 100 + digits[0] * 10 + digits[2]<<endl;
                }
                else {
                    // digits[1] == digits[2]
                    cout<<digits[2] * 100 + digits[1] * 10 + digits[0]<<endl;
                    cout<<digits[2] * 100 + digits[0] * 10 + digits[1]<<endl;
                    cout<<digits[0] * 100 + digits[1] * 10 + digits[2]<<endl;
                }
            }
        }
    }
    cin.get(); cin.get();
    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!
LATEST TUTORIALS
APPROVED BY CLIENTS