Skip to main content

Convert numbers to roman numerals



Convert numbers to roman numerals  

 

 

#include<stdio.h>
#include<conio.h>



void predigits(char c1,char c2);
void postdigits(char c,int n);

char roman_Number[1000];
int i=0;

int main()
{

    int j;
    long int number;
  
    printf("Enter any natural number: ");
    scanf("%d",&number);
  
    if(number <= 0){
         printf("Invalid number");
         return 0;
    }

    while(number != 0){

         if(number >= 1000){
             postdigits('M',number/1000);
             number = number - (number/1000) * 1000;
         }
         else if(number >=500){
             if(number < (500 + 4 * 100)){
                 postdigits('D',number/500);
                 number = number - (number/500) * 500;
             }
             else{
                 predigits('C','M');
                 number = number - (1000-100);
             }
         }
         else if(number >=100){
             if(number < (100 + 3 * 100)){
                 postdigits('C',number/100);
                 number = number - (number/100) * 100;
             }
             else{
                 predigits('L','D');
                 number = number - (500-100);
             }
         }
         else if(number >=50){
             if(number < (50 + 4 * 10)){

                 postdigits('L',number/50);
                 number = number - (number/50) * 50;
             }
             else{
                 predigits('X','C');
                 number = number - (100-10);
             }
         }
         else if(number >=10){
             if(number < (10 + 3 * 10)){
                 postdigits('X',number/10);
                 number = number - (number/10) * 10;
             }
             else{
                 predigits('X','L');
                 number = number - (50-10);
             }
         }
         else if(number >=5){
             if(number < (5 + 4 * 1)){
                 postdigits('V',number/5);
                 number = number - (number/5) * 5;
             }
             else{
                 predigits('I','X');
                 number = number - (10-1);

             }
         }
         else if(number >=1){
             if(number < 4){
                 postdigits('I',number/1);
                 number = number - (number/1) * 1;
             }
             else{
                 predigits('I','V');
                 number = number - (5-1);
             }
         }
    }

    printf("Roman number will be: ");
    for(j=0;j<i;j++)
         printf("%c",roman_Number[j]);

    return 0;

}

void predigits(char c1,char c2){

    roman_Number[i++] = c1;
    roman_Number[i++] = c2;
}

void postdigits(char c,int n){
    int j;
    for(j=0;j<n;j++)
         roman_Number[i++] = c;
  
}



Sample output:

Enter any natural number: 87
Roman number will be: LXXXVII

Comments

Popular posts from this blog

Fibonacci series in c

Fibonacci series in c Fibonacci series in c programming: c program for Fibonacci series without and with recursion. Using the code below you can print as many numbers of terms of series as desired. Numbers of Fibonacci sequence are known as Fibonacci numbers. First few numbers of series are 0, 1, 1, 2, 3, 5, 8 etc, Except first two terms in sequence every other term is the sum of two previous terms, For example 8 = 3 + 5 (addition of 3, 5). This sequence has many applications in mathematics and Computer Science. Fibonacci series in c using for loop /* Fibonacci Series c language */   #include <stdio.h>   int main ( ) { int n , first = 0 , second = 1 , next , c ;   printf ( "Enter the number of terms \n " ) ; scanf ( "%d" ,& n ) ;   printf ( "First %d ...

To Find Factorial of a Number

To Find Factorial of a Number   Factorial of a Number   For any positive number n , its factorial is given by: factorial = 1 * 2 * 3 * 4. ... n If a number is negative, factorial does not exist and factorial of 0 is 1. This program takes an integer from a user. If user enters negative integer, this program will display error message and if user enters non-negative integer, this program will display the factorial of that number. Source Code /* C program to display factorial of an integer if user enters non-negative integer. */ #include <stdio.h> int main () { int n , count ; unsigned long long int factorial = 1 ; /* you can only write int */ printf ( "\nEnter an integer: \n" ); scanf ( "%d" ,& n ); if ( n < 0 ) printf ( "\nError!!! Factorial of negative number doesn't e...

Sum, Average and Standard deviation in c

 Sum, Average and Standard deviation Write a function that receives 5 integers and returns the sum, average and standard deviation of these numbers. Call this function from main( ) and print the results in main( ). #include <stdio.h> void stat(int a,int b,int c,int d,int e,int *su,float *av,float *std) void main() { clrscr(); float ave,sd; int a,b,c,d,e,sum; printf( "\nInput 5 integers\n" ); scanf( "\n%d\n%d\n%d\n%d\n%d" ,&a,&b,&c,&d,&e);   stat(a,b,c,d,e,&sum,&ave,&sd); printf( "\nThe sum is %d\nThe average is %f\nThe standard deviation is %f" ,sum,ave,sd); } void stat(int a,int b,int c,int d,int e,int *su,float *av,float *std) { * su=a+b+c+d+e; * av= * su/5; * std=sqrt(((((a-*av)*(a-*av))+((b-*av)*(b-*av))+((c-*av)*(c-*av)))/5.0); }