የተሰጡ አራት ቁልፎችን በመጠቀም ከፍተኛውን የ A ቁጥር ማተም እንዴት እንደሚቻል


የችግር ደረጃ መካከለኛ
ውስጥ በተደጋጋሚ ተጠየቀ አማዞን ፌስቡክ google የ PayPal Paytm
ተለዋዋጭ ፕሮግራም

የችግሩ መግለጫ

የተሰጡ አራት ቁልፎችን በመጠቀም ከፍተኛውን የ A ቁጥር ማተም እንዴት እንደሚቻል ፣ ይህ ችግር የትኛው ቁልፍ እንደሚጫን የመምረጥ አማራጭ እንዳለዎት ይገልጻል ፡፡ ቁልፎቹ የሚከተሉትን ተግባራት ያከናውናሉ

  1. ቁልፍ 1 - በማያ ገጹ ላይ ‹ሀ› ያትማል
  2. ቁልፍ 2 - ማያ ገጹን በሙሉ ይምረጡ።
  3. Key3 - የተመረጠውን ይዘት ገልብጥ ፡፡
  4. ቁልፍ 4 - የተቀዳውን ይዘት ያትሙ።

ቁልፎችን ለ N ጊዜያት ብቻ መጫን ይችላሉ ፣ ሊታተም የሚችል ከፍተኛውን የ A ቁጥር ያግኙ ፡፡ ሊያደርጓቸው ከሚችሏቸው ማናቸውም ውህዶች በመጠቀም ሊታተም የሚችል ከፍተኛውን የ A ቁጥር ያግኙ ፡፡

ለምሳሌ

Number of keys that can be pressed = 2
Number of A's that can be printed = 2

ማብራሪያ-ማንኛውም ሌላ ጥምረት ከዚህ የተሻለ ውጤት ማግኘት ስለማይችል ፡፡ ሌላ ማንኛውንም የቁልፍ ማተሚያዎች ጥምረት መጠቀም ፣ የበለጠ የ ‹ኤ› ቁጥር ማተም አይችልም ፡፡ ማንኛውንም ሌላ ጥምረት መሞከር እንችላለን ፡፡ አንድ ነጠላ ሀ እናተም እንበል ምክንያቱም ምክንያቱም ‹ሀ› ካላተምነው ‹ሀ› ን መምረጥ አንችልም ከዚያም ማተም አንችልም ፡፡ ስለዚህ አንድ ነጠላ ‹ሀ› ማተም የተሻለ ነው ፡፡ ከዚያ በኋላ ከሦስቱ ጥምረት ፣ ምርጫ ፣ ማተሚያ እና ቅጅ ማናቸውንም ማከናወን እንችላለን ፡፡ ግን ከእነዚህ ማናቸውም ማናቸውም ውህዶች የተሻሉ ውጤቶችን መስጠት አይችሉም ፡፡

የተሰጡ አራት ቁልፎችን በመጠቀም ከፍተኛውን የ A ቁጥር ማተም እንዴት እንደሚቻል

Number of keys that can be pressed = 6
Number of A's that can be printed = 6

ማብራሪያ-የሚከተሉትን 6 የቁልፍ ማተሚያዎች ፣ Key1 (ህትመቶች 'A') ፣ Key1 ፣ Key1 ፣ Key2 (አጠቃላይ ማያ ገጽ ይዘቱን ይመርጣል) ፣ Key3 (የተመረጠውን ይዘት ይቅዱ) ፣ Key4 (የተቀዳውን ይዘት ያትማል) እንጠቀማለን ፡፡ ተመሳሳይ የ A ን ቁጥር ሊያትሙ የሚችሉ ሌሎች የቁልፍ ማተሚያዎች ሊኖሩ ይችላሉ።

ቀረበ

የተሰጡ አራት ቁልፎችን በመጠቀም ከፍተኛውን የ A ቁጥር ማተም እንዴት መፈለግ ፣ ከቁልፍ መጭመቂያዎች = N-3 እስከ 1 ከጀመርን እና ከፍተኛውን የ A ቁጥር ለማወቅ ከሞከር ሊፈታ ይችላል ፡፡
የ “ith” አቀማመጥ Key2 ፣ Key3 እና ከዚያ የቁልፍ 4 ቅደም ተከተል የምንጫንበት ነጥብ መሆኑን እንመለከታለን። አሁን ፣ ከኤን -3 እስከ 1. ካሰለፍን ብዙ እንደዚህ ያሉ ነጥቦች ሊኖሩ ይችላሉ ፡፡

እንደተለመደው ችግሩ ስለሚጠቀምበት መሰረታዊ ጉዳይ እንፈልጋለን ተለዋዋጭ ፕሮግራም. እዚህ ላይ ጉዳዩ n <= 6 በቀላሉ ቁጥሩን ካተምነው ነው ፡፡ ለምን ይህንን ብለን እንጠራዋለን ተለዋዋጭ ፕሮግራም ምንም እንኳን በኮዱ ውስጥ ምንም የዲፒ ድርድር ባንጠቀምም? ምክንያቱም ችግሩ ሁለቱን ሁኔታዎች ያሟላል ፣ ማለትም - ተደራራቢ ንዑስ ችግሮች እና የተሻለው ንዑስ መዋቅር። እያንዳንዱ ችግር የበለጠ ሊከፋፈል ይችላል ይህም ከዚያ የበለጠ ይከፋፈላል።

ኮድ

ሊታተም የሚችል ከፍተኛውን ቁጥር ለማግኘት C ++ ኮድ

#include <bits/stdc++.h>
using namespace std;

int maximumNumberOfAsPrinted(int numberOfKeyPresses)
{
  if(numberOfKeyPresses <= 6)
    return numberOfKeyPresses;

  int maxNumberOfAs = 0;
  for(int i = numberOfKeyPresses-3; i>=1;i--) {
    // here we consider that after ith keystroke we are performing only selection, copy once and then paste
    // thus starting from numberOfKeyPresses-3
    int numberOfAs = (numberOfKeyPresses-i-1)*maximumNumberOfAsPrinted(i);
    if (numberOfAs > maxNumberOfAs)
      maxNumberOfAs = numberOfAs;
  }
  return maxNumberOfAs;
}

int main()
{
  int numberOfKeyPresses;cin>>numberOfKeyPresses;
  int numberOfAsPrinted = maximumNumberOfAsPrinted(numberOfKeyPresses);
  cout<<numberOfAsPrinted;
}
18
192

የጃቫ ኮድ ከፍተኛውን ቁጥር ለማግኘት ያ ሊታተም ይችላል

import java.util.*;

class Main{
    static int maximumNumberOfAsPrinted(int numberOfKeyPresses)
    {
    	if(numberOfKeyPresses <= 6)
    		return numberOfKeyPresses;
    
    	int maxNumberOfAs = 0;
    	for(int i = numberOfKeyPresses-3; i>=1;i--) {
    		// here we consider that after ith keystroke we are performing only selection, copy once and then paste
    		// thus starting from numberOfKeyPresses-3
    		int numberOfAs = (numberOfKeyPresses-i-1)*maximumNumberOfAsPrinted(i);
    		if (numberOfAs > maxNumberOfAs)
    			maxNumberOfAs = numberOfAs;
    	}
    	return maxNumberOfAs;
    }

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
    	int numberOfKeyPresses = sc.nextInt();
    	int numberOfAsPrinted = maximumNumberOfAsPrinted(numberOfKeyPresses);
    	System.out.println(numberOfAsPrinted);
    }
}
18
192

ውስብስብነት ትንተና

የጊዜ ውስብስብነትኦ (ኤን)

እኛ በቀላሉ በበርካታ የቁልፍ መርገጫዎች ላይ ሉፕ ስለምንሠራ ፡፡ አልጎሪዝም የ O (N) መስመራዊ የጊዜ ውስብስብነት አለው።

የቦታ ውስብስብነትኦ (1)

የተወሰኑ የተወሰኑ ቁጥሮችን እና አባላትን ብቻ ስለምናስቀምጥ። እኛ የማያቋርጥ የቦታ ውስብስብነት አለብን ፡፡