CODING JOY

The stunning potpourri of coding and mundane life

XYLEM AND PHLOEM NUMBER IN C++ LANGUAGE



AMRUHA AHMED
2nd October,2022.


A Xylem Number is the number whose sum of extreme digits is equal to the sum of mean digits. A Phloem Number is the number whose sum of extreme digits is not equal to the sum of mean digits

blog1

The following C++ program checks whether the given number is a Xylem Number or a Phloem Number:


METHOD-1:

                    

                        #include<iostream>
                        using namespace std;
                        int main()
                        {
                            int n;//accepted number
                            int a[20];//array to store digits of n
                            int i=0;//index of array a[]
                            int ctr;//count of digits
                            int j;//loop counter
                            int s1,s2;// s1- sum of extreme digits,s2=sum of digits in middle
                            int t;//dummy variable
                            cout<<"enter a number:";
                            cin>>n;
                            t=n;
                            while(n!=0)
                            {
                                int rem=n%10;
                                a[i++]=rem;
                                n=n/10;
                            }
                            ctr=i;
                            s1=a[ctr-1]+a[0];
                            for(j=1;j<ctr-1;j++)
                            s2=s2+a[j];
                            if(s1==s2)
                            cout<<endl<<t<<" is a Xylem Number";
                            else
                            cout<<endl<<t<<" is a Phloem Number";
                            
                            
                        }
              
                
CODE COPIED

DRY RUN:


blog1

Considering n as 1234. From the above image, it can be safely said that n is a Xylem Number

blog1

Extracting all the digits of the number n using a while loop and storing it in array a[] using the loop counter i as shown

blog1

The array a[] contains digits of the number n in a reversed fashion.
NOTE: The order of arrangement of digits in the array does not affect the final result. In case of any confusion arising, a suitable loop can be used to reverse the order of storage of digits .


Now, ctr is assigned the value of i and the sum of extreme digits s1 is calculated. In this case, s1 is equal to 5.

blog1

Using a for loop of loop counter j, the sum of mean digits or s2 is calculated.

At the end of the for loop, s2 is calculated as 5.

Now, s1 and s2 are checked for equality. In this case, both s1 and s2 are equal to 5. Hence the condition for Xylem Number is satisfied.


OUTPUT:

enter a number:1234

1234 is a Xylem Number


DRY RUN FOR PHLOEM NUMBER:


blog1

Considering n as 1236. From the above image, it can be safely said that n is a Phloem Number

blog1

Extracting all the digits of the number n using a while loop and storing it in array a[] using the loop counter i as shown

blog1

The array a[] contains digits of the number n in a reversed fashion.
NOTE: The order of arrangement of digits in the array does not affect the final result. In case of any confusion arising, a suitable loop can be used to reverse the order of storage of digits .


Now, ctr is assigned the value of i and the sum of extreme digits s1 is calculated. In this case, s1 is equal to 7.

blog1

Using a for loop of loop counter j, the sum of mean digits or s2 is calculated.

At the end of the for loop, s2 is calculated as 5.

Now, s1 and s2 are checked for equality. In this case, both s1 and s2 are not equal to each other. Hence the condition for Xylem Number is not satisfied anfd the number n is designated as a Phloem Number


OUTPUT:

enter a number:1236

1234 is a Phloem Number


METHOD-2:

                       
 #include<iostream>
using namespace std;
int main()
{
    int n;//accepted number
    int s1=0;//sum of extreme digits
    int s2=0;//sum of middle digits 
    int d;//dummy variable
    cout<<"Enter a number:";
    cin>>n;
    d=n;
    s1=n%10;
    n=n/10;
    while(n>9)
    {
        
        s2=s2+n%10;
        n=n/10;
    }
    s1=s1+n;
    if(s1==s2)
    cout<<endl<<d<<" is a Xylem Number";
    else
    cout<<endl<<d<<" is a Phloem Number";
    return 0;
}


                    
                

DRY RUN FOR XYLEM NUMBER:



blog1

Considering n as 15329. From the above image, it can be safely said that n is a Xylem Number


Here, s1 is first calculated as the n%10 in order to extract the last digit of the number

blog1

Using the while loop, the sum of mean digits is calculated and stored in s2. This loop stops when n is reduced to a single digit number.


Now, s1 is calculated at s1+=n in order to extract the first digit of 15329.Since s1 and s2 are equal to 10 hence 15329 is designated as a Xylem Number.


OUTPUT:

enter a number:15329

15329 is a Xylem Number

DRY RUN FOR PHLOEM NUMBER:



blog1

Considering n as 1326. From the above image, it can be safely said that n is a Phloem Number


Here, s1 is first calculated as the n%10 in order to extract the last digit of the number

blog1

Using the while loop, the sum of mean digits is calculated and stored in s2. This loop stops when n is reduced to a single digit number.


Now, s1 is calculated at s1+=n in order to extract the first digit of 15329.Since s1 is equal to 7 and s2 is equal to 5 hence 1326 is designated as a Phloem Number.


OUTPUT:

enter a number:1326

1326 is a Phloem Number