Write a program to do the followings:

• Read a number from the user ( N1 ), and check if it exactly has 3 digits.

• Read another number from the user ( N2 ), and check if it exactly has 3 digits.

• In (N1) check that the multiplication of the most left 2 digits is equal to the most right digit.

• In (N21) check that the multiplication of the most right left 2 digits is equal to the most left digit.

• In case the previous checks were true, then compose a new variable that carries the most right digit of (N1), & the most left digit of (N2).

e.g.

N1 : 236 (2 x 3 = 6)

N2 : 824. (8 = 2 x 4)

Then

New variable (68)

How Can I Know The No. Of Digits in C++ ???

• Read a number from the user ( N1 ), and check if it exactly has 3 digits.

• Read another number from the user ( N2 ), and check if it exactly has 3 digits.

• In (N1) check that the multiplication of the most left 2 digits is equal to the most right digit.

• In (N21) check that the multiplication of the most right left 2 digits is equal to the most left digit.

• In case the previous checks were true, then compose a new variable that carries the most right digit of (N1), & the most left digit of (N2).

e.g.

N1 : 236 (2 x 3 = 6)

N2 : 824. (8 = 2 x 4)

Then

New variable (68)

How Can I Know The No. Of Digits in C++ ???

There are a few ways.

You can either do it by dividing an integer by 10`n` times until it is 0. `n` will be the number of digits.

eg:

80 : n = 0

8 : n = 1

0 : n = 2

2 digits in 80

Or, you can convert it to a string and count the number of characters.

Considering the mathematical nature of the assignment I'd guess you're expected to use the first method.

EDIT: Typos

You can either do it by dividing an integer by 10

eg:

80 : n = 0

8 : n = 1

0 : n = 2

2 digits in 80

Or, you can convert it to a string and count the number of characters.

Considering the mathematical nature of the assignment I'd guess you're expected to use the first method.

EDIT: Typos

Last edited on

The '%' (mod) operator, which returns the remainder after dividing, will be helpful here.

To get a certain digit of a number, you mod it by its place + 1, and then divide it by its place.

To get 3 (it's in the 10^3 or 1000ths place):

823467 % 10^4 = 3467

3467 / 10^3 = 3

3

(Note that the caret symbol '^'**DOES NOT MEAN** "to the power of" in C++. You can use pow() from <cmath> to do this instead)

Using mod on a number (by a multiple of 10) essentially gets rid of unwanted leftmost digits, while dividing gets rid of rightmost digits. Use this concept to find out how to get the leftmost 2 digits of a number or the rightmost 2.

To get a certain digit of a number, you mod it by its place + 1, and then divide it by its place.

To get 3 (it's in the 10^3 or 1000ths place):

823467 % 10^4 = 3467

3467 / 10^3 = 3

3

(Note that the caret symbol '^'

Using mod on a number (by a multiple of 10) essentially gets rid of unwanted leftmost digits, while dividing gets rid of rightmost digits. Use this concept to find out how to get the leftmost 2 digits of a number or the rightmost 2.

Last edited on

Topic archived. No new replies allowed.