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

मोबाइल संख्यात्मक कीपैड समस्या


इस समस्या में एक संख्यात्मक मोबाइल कीपैड दिया जाता है। हम वर्तमान बटन के केवल ऊपर, नीचे, दाएं और बाएं बटन दबा सकते हैं, विकर्ण कुंजियों की अनुमति नहीं है। हम कीपैड में * और # बटन भी नहीं दबा सकते।

मोबाइल संख्यात्मक कीपैड समस्या

एक अंक दिया गया है, हमें दिए गए नियमों को बनाए रखते हुए, कीपैड का उपयोग करके दिए गए अंकों की संभावित संख्याओं की संख्या ज्ञात करनी है।

इनपुट और आउटपुट

<पूर्व>इनपुट:अंक गणना। 3 अंकों की संख्या कहें। आउटपुट:संभावित 3 अंकों की संख्या, जो दी गई शर्तों के साथ बनाई जा सकती है। यहाँ उत्तर 138 है।

एल्गोरिदम

getCount(n)

इनपुट: अंकों की संख्या n.
आउटपुट: मोबाइल कीपैड में n अंकों की संख्या टाइप करने के संभावित तरीके।

शुरू करें यदि n <=0 है, तो n =1 पर 0 लौटाएं, फिर 10 दो सरणी पंक्ति को परिभाषित करें और वर्तमान कुंजी से प्रत्येक दिशा को स्थानांतरित करने के लिए कॉल करें आकार की गणना तालिका (10 x n + 1) को श्रेणी में i के लिए परिभाषित करें 0 से 9, गिनें [i, 0]:=0 काउंट [i, 1]:=1 k के लिए 2 से n तक किया गया, i के लिए 0 से 3 की सीमा में, j के लिए 0 से 2 की सीमा में करें, यदि कुंजी [i, j] ≠ * या # करें, तो num:=key[i, j] count[num, k] :=0 सभी संभावित चालों के लिए, rowMove करें:=i + row[move] colMove :=j + col[move] अगर rowMove in (0..3) colMove in (0..2), और key * या #, तो nextNum :=key[rowMove, colMove] count[num, k] :=count [संख्या, के] + गिनती [अगली संख्या, के + 1] किया गया कुल किया गया कुल गणना:=0 के लिए मैं 1 से 9 की सीमा में, कुल गणना करें:=कुल गणना + गिनती [i, n] किया गया कुल गणना समाप्त करें 

उदाहरण

#include नेमस्पेस का उपयोग करना एसटीडी;चार कीपैड[4][3] ={{'1','2','3'}, {'4','5','6'}, {'7', '8', '9'}, {'*', '0', '#'}}; int getCount (int n) { अगर (कीपैड ==NULL || n <=0) रिटर्न 0; अगर (एन ==1) वापसी 10; // 1 अंक संख्या 0-9 पूर्णांक पंक्ति [] ={0, 0, -1, 0, 1}; // ऊपर और नीचे पंक्ति बदल जाएगी int col[] ={0, -1, 0, 1, 0}; // बाएं और दाएं कॉलम के लिए इंट काउंट बदल जाएगा [10] [एन + 1]; // i और लंबाई j int move =0, rowMove =0, colMove =0, num =0; इंट नेक्स्टनम =0, टोटलकाउंट =0; के लिए (int i=0; i<=9; i++) {//लंबाई 0 और 1 गिनती के लिए[i][0] =0; गिनती [i] [1] =1 } के लिए (int k=2; k<=n; k++) {//अंक 2 से n के लिए (int i=0; i<4; i++ ) {//पंक्ति के लिए के लिए बुद्धिमान (int j=0; j<3; j++) {// कॉलम वार के लिए अगर (कीपैड[i][j]!='*' &&कीपैड[i][j]!='#') { / /कुंजी * नहीं हैं और # अंक =कीपैड[i][j] - '0'; // कैरेक्टर काउंट से नंबर पाएं [num] [k] =0; के लिए (चाल =0; चाल <5; चाल ++) {rowMove =i + पंक्ति [चाल]; // रो मूविंग मैट्रिक्स का उपयोग करके मूव करें colMove =j + col [move]; // कॉलम मूविंग मैट्रिक्स का उपयोग करके मूव करें अगर (rowMove>=0 &&rowMove <=3 &&colMove>=0 &&colMove <=2 &&कीपैड[rowMove][colMove] !='*' &&keypad[rowMove][colMove] ! ='#') {नेक्स्टनम =कीपैड [रोमोव] [कोलमोव] - '0'; // अगली संख्या की गणना करें [संख्या] [के] + =गिनती [अगली संख्या] [के -1]; } } } } } } कुल गणना =0; for (int i=0; i<=9; i++) // i TotalCount +=count[i][n]; से शुरू होने वाली संख्या के लिए; कुल वापसी;} int मुख्य () { int n; cout <<"अंकों की संख्या:"; सिनेमा>> एन; cout <<"संभावित संयोजन:" < 

आउटपुट

अंकों की संख्या:3 संभावित संयोजन:138

  1. नहीं नमपद? कोई समस्या नहीं! विंडोज़ में न्यूमेरिक कीपैड कैसे प्राप्त करें

    क्या आपने एक लैपटॉप या एक मिनी-कीबोर्ड खरीदा है और अपने आप को अपना नंबरपैड याद कर रहे हैं? कई विंडोज़ अनुप्रयोग एक numpad के साथ बेहतर काम करते हैं, और इसके उपयोग को तब तक कम करके आंका जा सकता है जब तक कि यह समाप्त न हो जाए। लेकिन हर कोई एक पूर्ण आकार का कीबोर्ड नहीं चाहता है, और बहुत कम लैपटॉप nump

  1. विंडोज 10 में न्यूमेरिक कीपैड काम नहीं कर रहा है [हल किया गया]

    फिक्स न्यूमेरिक कीपैड विंडोज़ में काम नहीं कर रहा है 10:  कई उपयोगकर्ता रिपोर्ट कर रहे हैं कि विंडोज 10 में अपग्रेड करने के बाद नंबर की या न्यूमेरिक कीपैड काम नहीं कर रहा है लेकिन समस्या को सरल समस्या निवारण चरणों का उपयोग करके हल किया जा सकता है। अब हम जिन नंबर कुंजियों के बारे में बात कर रहे हैं,

  1. Windows लैपटॉप पर न्यूमेरिक कीपैड कैसे प्राप्त करें और उपयोग करें

    क्या मुझे अपने लैपटॉप पर संख्यात्मक कीपैड की आवश्यकता है? ठीक है, स्पष्ट रूप से, बहुत से लोग इसे हर दिन इस्तेमाल नहीं करेंगे। लेकिन शुद्ध संख्यात्मक प्रविष्टियां करते समय या विशेष वर्ण जोड़ते समय, नंपद होने से बहुत मदद मिलेगी! इतना ही नहीं, न्यूमेरिक कीपैड कुछ विंडोज एप्लिकेशन के साथ बहुत अच्छा क