Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C . में रोमन से पूर्णांक

एक दशमलव संख्या n को देखते हुए, हमें इसे रोमन अंक में बदलना होगा। मान n 1 से 4000 की सीमा में है। ये कुछ रोमन अंक हैं।

नंबर
<वें शैली ="पाठ-संरेखण:केंद्र;"> अंक
1
I
4
IV
5
V
9
IX
10
X
40
XL
50
L
90
XC
100
C
400
CD
500
D
900
CM
1000
M
4000
MMMM

अतः यदि संख्या n =859 है, तो इसका रोमन अंक DCCCLIX होगा

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे

  • दी गई सूची के लिए अंक और संबंधित मानों को संग्रहीत करने के लिए एक सरणी परिभाषित करें। इसे संख्या सरणी कहा जाता है
  • हम एक पुनरावर्ती दृष्टिकोण का उपयोग कर रहे हैं, फ़ंक्शन decToRom() का उपयोग किया जाता है। यह संख्या सरणी और संख्या संख्या ले रहा है।
  • decToRom() जैसा होगा
  • यदि संख्या 0 नहीं है, तो
    • अधिकतम:=संख्या सरणी से अधिकतम मान ज्ञात करें जो संख्या से बड़ा नहीं है
    • उस अधिकतम के लिए परिणाम स्ट्रिंग में मान जोड़ें
    • संख्या:=संख्या – अधिकतम मान
    • decToRom(num, num)

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include<stdio.h>
typedef struct{
   char *sym;
   int val;
}numeral;
int maxNume(numeral *nu, int num){
   int i, index;
   for(i = 0; i<15; i++){//15 numerals in array
      if(nu[i].val <= num)
         index = i;
   }
   //gretest value numeral index, not greater than number
   return index;
}
void decToRoman(numeral *nu, int num){
   int max;
   if(num != 0){
      max = maxNume(nu, num);
      printf("%s", nu[max].sym);
      num -= nu[max].val;//decrease number
      decToRoman(nu, num);//recursively print numerals
   }
}
main(){
   int number;
   numeral nume[15] = {{"I",1},{"IV",4},{"V",5},{"IX",9}, {"X",10},{"XL",40},{"L",50},{"XC",90},
{"C",100},{"CD",400},{"D",500},{"CM",900},{"M",1000},{"MMMM",4000},{"V'",5000}};
   printf("Enter a decimal number: ");
   scanf("%d", &number);
   if(number >0 && number <= 5000){//checking input number
      printf("The Roman equivalent of %d is ", number);
      decToRoman(nume, number);
   }
   else{
      printf("Invalid Input");
   }
   printf("\n");
}

इनपुट

570
3574

आउटपुट

DLXX
MMMDLXXIV

  1. पायथन में रोमन से पूर्णांक तक

    मान लीजिए कि हमारे पास रोमन अक्षर हैं; हमें उन्हें एक पूर्णांक में बदलना होगा। जैसा कि हम जानते हैं कि रोमन अंक नीचे दिए गए कुछ अलग प्रतीकों में प्रतिनिधित्व करते हैं - अंक मान मैं 1 V 5 X 10 L 50 C 100 D 500 M 1000 यदि हम रोमन संख्याओं को बारीकी से देखें, तो मान लीजिए कि अंक II है, तो यह

  1. पायथन में रिवर्स इंटीजर

    मान लीजिए कि हमारे पास एक 32-बिट हस्ताक्षरित पूर्णांक संख्या है। हमें संख्या लेनी है और अंकों को उलटना है। तो अगर संख्या 425 की तरह है, तो आउटपुट 524 होगा। एक और बात हमें ध्यान में रखनी होगी कि संख्या हस्ताक्षरित है, इसलिए कुछ नकारात्मक संख्याएं हो सकती हैं। तो अगर संख्या -425 है, तो यह -524 होगी।

  1. एक सकारात्मक पूर्णांक संख्या के बिट्स को उलटने के लिए पायथन प्रोग्राम?

    पहले बिन () फ़ंक्शन का उपयोग करके संख्या को बाइनरी में बदलें। फिर द्विआधारी प्रतिनिधित्व के पहले दो वर्णों को छोड़ दें क्योंकि बिन () संख्या के द्विआधारी प्रतिनिधित्व में उपसर्ग के रूप में 0b को जोड़ता है और शेष भाग को उलट देता है। चरित्र से भी और इसे बाएं से दूसरे अंतिम वर्ण तक उलट दें। उलटे बाइनरी