• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Javacript / c++ - Wyznacz maksymalna liczbe róznych trójkatów,helpppppp

Object Storage Arubacloud
+1 głos
260 wizyt
pytanie zadane 18 grudnia 2020 w JavaScript przez zegcio44 Nowicjusz (140 p.)

Treść Pytania niżej oraz mój kod, chętnie przyjme każdą wskazówke oraz pomoc obojetnie w jakim języku

Wyznacz maksymalna liczbe róznych trójkatów, które mozna zbudowac z róznych boków
o długosciach całkowitych pochodzacych z zadanego przedziału [x; y].
Opis wej´scia
Na standardowym wejsciu znajduja sie dwie liczby całkowite x; y zapisane w oddzielnych
wierszach (0 < x < y < 10 000), okreslajace krance przedziału, z którego pochodza
długosci odcinków do konstrukcji trójkatów.
Opis wyj´scia
Na wyjsciu standardowym powinna pojawic sie pojedyncza wartosc całkowita, oznaczajaca
liczbe róznych trójkatów, które mozna zbudowac z róznych odcinków o długosciach całkowitych pochodzacych z zakresu od x włacznie do y włacznie.
Przykład
Dla przykładowego, podanego ponizej wejscia:
2
5
prawidłowa odpowiedzia jest:
3
Wyja´snienie przykładu
W przedziale [2,5] znajduja sie 4 odcinki o długosciach całkowitych: 2,3,4,5. Trzy rózne
odcinki mozna wybrac na 4 sposoby:
2 3 4
2 3 5
2 4 5
3 4 5
Nierównosc trójkata jest spełniona dla wszystkich kombinacji poza jedna (2,3,5), zatem
prawidłowa odpowiedzia jest 3.

      

	function start(){
		const x = 2;
		const y = 5
		let tab = []
		
		for(i = x; i <= y; i++){
		
		tab.push(i);
		
		}
		
		let a = tab[Math.floor(Math.random() * tab.length)]; 
		let b = tab[Math.floor(Math.random() * tab.length)];
		let c = tab[Math.floor(Math.random() * tab.length)];
		let d = tab[Math.floor(Math.random() * tab.length)];
		}

  

  <!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    <input type="button" value="start" onclick="start()">
    
    <h1><div id="wynik"></div></h1>
    </body>
    
</html>

 

1 odpowiedź

0 głosów
odpowiedź 20 grudnia 2020 przez VBService Ekspert (253,340 p.)
edycja 20 grudnia 2020 przez VBService

Moja propozycja, prosty kod, który sprawdza "wszystkie" kombinacje z danego przedziału. wink Codepen

<!DOCTYPE html>
<html lang="pl">
  <head>
    <meat charset="utf-8">

  <style>
    @charset "UTF-8";
    @viewport {
      width: device-width;
      initial-scale: 1;
    }
    :root {
      --default-font-size: 1em;
      --default-line-height: 2em;
    }
    *, *:before, *:after {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }
    body {
      padding:0;
      margin:0;
      border:0;
    }
    .grid-container {
      display: grid;
      grid-template-columns: 0.6fr 1fr;
      grid-template-rows: 1fr 1fr 1fr 1fr 1fr 8fr;
      gap: 0px 0px;
      grid-template-areas: ". ." ". ." ". ." ". ." ". ." "board board";
      margin: 1em;
      width: 50vw;
      height: 50vh;
    }
    .grid-container div {
      font: var(--default-font-size)/var(--default-line-height) monospace;  
    }
    .grid-container .label {
      font: var(--default-font-size)/var(--default-line-height) monospace;
      text-align: right;
      padding-right: 0.2em;
    }
    input[type="number"] {
      font: var(--default-font-size) monospace;
      width: calc(var(--default-font-size) * 5);
      margin-bottom: 0.25em;
    }
    button {
      font: var(--default-font-size) monospace;
      width: calc(var(--default-font-size) * 5);
      cursor: pointer;
      text-align: center;
      outline: none;
      user-select: none;
      border-radius: 0.3em;
      box-shadow: 1px 1px 1px rgba(0,0,0,0.6);
      transition: all 0.1s;
    }
    button:hover {
      color: green;
    }
    button:active {
      box-shadow: 1px 1px 1px rgba(0,0,0,0.2);
    }
    .board {
      grid-area: board;
      font: var(--default-font-size)/var(--default-font-height) monospace;
      padding: 0;
      margin: 0;
      overflow-y: auto;
      scroll-behavior: smooth;
    }
    .board::-webkit-scrollbar {
      width: 5px;
    }
    .board::-webkit-scrollbar-track {
      box-shadow: inset 0 0 2px rgba(10,10,10,0.5); 
      border-radius: 1em;
    }
    .board::-webkit-scrollbar-thumb {
      background: rgba(0,0,0,0.5); 
      border-radius: 1em;
    }
    .board::-webkit-scrollbar-thumb:hover {
      background: rgba(0,0,0,1); 
    }
  </style>
  </head>
  <body>
    <div class="grid-container">
      <div class="label">Dolny zakres:</div>
        <div><input type="number" id="range-lower" step="1" min="1"></div>
      <div class="label">Górny zakres:</div>
        <div><input type="number" id="range-upper" step="1"></div>
      <div></div>
        <div><button id="calculate">Oblicz</button></div>
      <div class="label">Wszystkie dostępne:</div>
        <div><span id="all-in-range"></span></div>
      <div class="label">Powstanie trójkąt:</div>
        <div><span id="triangle-in-range"></span></div>
      <div class="board"><pre id="board"></pre></div>
    </div>

  <script>
    window.onload = () => {
      const RANGE_UPPER = 9;

      const input_range_lower = document.querySelector('#range-lower');
      const input_range_upper = document.querySelector('#range-upper');

      input_range_lower.value = random(1,3);
      input_range_upper.value = random(4,RANGE_UPPER);

      input_range_lower.setAttribute('max',input_range_lower.value);
      input_range_upper.setAttribute('min',input_range_lower.value);  
      input_range_upper.setAttribute('max',RANGE_UPPER);

      const all_in_range = document.querySelector('#all-in-range');
      const triangle_in_range = document.querySelector('#triangle-in-range');
      const button_calculate = document.querySelector('#calculate');
      const board = document.querySelector('#board');

      button_calculate.addEventListener('click', () => {
        const lower = input_range_lower.value * 1;
        const upper = input_range_upper.value * 1;

        board.textContent = '';
        let all_in_range_counter = 0;
        let triangle_in_range_counter = 0;

        for (let a=lower; a<=upper; ++a) {
          for (let b=lower; b<=upper; ++b) {
            for (let c=lower; c<=upper; ++c) {
              if (a+b>c && b+c>a && a+c>b) {           
                triangle_in_range.textContent = ++triangle_in_range_counter;
                board.textContent += ` [${a}${b}${c}]`;
                if (triangle_in_range_counter % 8 == 0) board.textContent += '\n';     
              }
              all_in_range.textContent = ++all_in_range_counter;
            }        
          }
        }
      })
    }

    const random = (min, max) => { 
      return Math.floor(Math.random() * (max - min + 1)) + min;
    }
  </script>
  </body>     
</html>

Podobne pytania

0 głosów
0 odpowiedzi 972 wizyt
pytanie zadane 20 września 2019 w C i C++ przez KamilKerry Początkujący (390 p.)
0 głosów
4 odpowiedzi 808 wizyt
pytanie zadane 14 listopada 2016 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 111 wizyt
pytanie zadane 3 listopada 2023 w Rozwój zawodowy, nauka, praca przez whiteman808 Obywatel (1,820 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...