3. Matrix of numbers


0
Може ли някой да ми покаже решението на задачата, защото нямам никаква идея как се решава? 



Отговори



1

С два цикъла: в първия i върви от 1 до N, във втория j е от i до i+N-1. 

В променлива "натрупваш" j-тата с празна позиция, а след края на вътрешния цикъл включваш и нов ред.

  1. let N = +args[0], i, j, result = '';
  2. for (= 1; i <= N; i += 1) {
  3.         for (= i; j < N + i; j += 1) {
  4.             result += j + ' ';
  5.         }
  6.         result += '\n';
  7.     }
  8.     return result;


от Slavka74 (436 точки)


0
Мерси за помощта.

от GeorgeVT (55 точки)


0
Тъй като и аз забих жестоко на тази задача карах ги да принтират на един ред, едно до друго,да си изкарвам елхички,  но в края на краищата не можах да направя нищо ,можете ли да ми кажете дали правилно съм разбрал кода който сте дали 
  1. let N = +args[0],    // Въведеното число което ще служи за брояч -(let N = 5 примерно)
  2.     i,
  3.     j,
  4. result = '';        //Декларация на променливите
  5.   
  6. for (= 1; i <= N; i += 1) {  // форцъкъла който брой колко реда ще са и спира
  7.         for (= i; j < N + i; j += 1) { // нестнат форцикъл който брои на долу  с по +1 ако 
  8.                                          j е по малко от въведеното число от масива събран с                                            полученото числото от предният(след завъртането на                                            цикъла +i тогава а прибави още +1
  9.             result += j + ' ';       // от тук се задава да ги принти вече на един ред                                                получените резултати от нестнатият форцикъл с разтояние                                        по между им,затова е събрано със празен стринг
  10.         }
  11.         result += '\n';             // след като горе им е казано да ги събира на един ред с                                          разтояние от тук е зададено след всяко завъртане да                                            слиза на нов ред
  12.     }
  13.     return result;                // и тук вече да изкарава полученият резултат на чисто след                                      всичките завъртаня докато стигне зададеното число



0

Този код работи на 100%

function solve(args) { var num = +args[0]; var row = ''; for (var i = 1; i <= num; i++) { for (var k = i; k <= num + (i-1); k++) { row+=k+' '; } console.log(row); row =''; } }


от spacex (65 точки)


1
То не е само да работи ,ако можеш напиши подробно обяснение,защото ако не го разбера и ми се наложи да го правя пак няма да си имам и най-малка идея как става.



0

И аз решавам същата задача. Тествах го на браузър и атом, задачата си работи без проблем, обаче bgcoder ми дава грешка по време на изпълнение. Проверявам го вече няколко пъти, но резултати няма. 

Ако някой погледне кода, ще съм благодарен.

function solve(args){ var input = +args[0]; for (var row = 1; row <= input; row++) { for (var col = row; col < row + input; col++) { process.stdout.write(`${col} `); } console.log(); } }


от rhm17 (25 точки)


0
Ето и обяснението което разбрах аз от дебъгера дано е полезно на някой който е загубил времето което аз загубих :
  1. let N = +args[0],      // Тук ще се декларира числото (да приемем че е 2)
  2.                i,      // i което може да ви е нъмбър или каунтър и т.н.
  3.                j,      // аналогично на горният ред просто се ползва в нестнатият форцикъл
  4.      result = '';      // резултат който е равен на празен стринг(просто за празно разстояние)  
  5.  
  6. for (= 1; i <= N; i += 1) {   /1/ Става първото завъртане на цикъла където i става 1,след                                       това се преминава на долу в нестнатият форцикъл (i=1)
  7.         for (= i; j < N + i; j += 1) { /2/ кода продължава тук като се изпълнява един път и                                          става със стойност равна на 1 дефакто (j=1)
  8.             result += j + ' ';   /3/ кода продължава тук като резултата(който е празен                                          стринг!) става равен на 1 + празен стринг ( j + ' ') така се                                  принтира "1 ".
  9.                                 /4/ Сега тук е важният момент при койото цикъла се връща във                                   втората стъпка за да продължи да се изпълнява условието докато                                 бъде окончателно изпълнено,тоест вашият резултат е 1 ,но в                                     нестнатия цикъл е казано да продължи да върти докато J e по                                   малко от N (тоест подаденото число в масива за пример 2) + i                                   (i е със стойноста в стъпка 1) и става следното:
  10.                                  j=1 ; 1 < 2 + 1; j (j=1) + 1 , така j става равен на 2 ,след                                 това слиза на следващият ред от стъпка 3 и се изпълнава така j                                 става равен на 2,аналогично се изпълнява отново в нестнатият                                   форцикъл за да се провери условието отново дали е вярно ,но                                   при третото завъртане вече j става равен на 3 при което кода                                   продължава на долу към стъпка /5/ защото условието не може да                                 бъде изпълнено от нестнатият форцикъл.
  11.         }
  12.         result += '\n';       /5/ на този ред вече имаме резултат в дебъгера от "1 2 \n"                                     (наклонена  /n казва да се премине на нов ред. След стъпка 4 се                               връщаме отново в главният цъкъл а не в нестнатият.Там вече i                                   става равно на 2. Повтаряме стъпките в същата последователност                                 /2,3,4/.Най накра след като са изпълнени всички условия от                                     цикъла ние имаме резултат от 
  13.                                                            "1 2 \n3 4"
  14.     }
  15.     Console.log(result); /6/ И тук вече се принтира резултата който е 1 2
  16.                                                                       3 4



1

 на C#

using System;
class MatrixofNumbers
{
    static void Main()
    {
        byte n = byte.Parse(Console.ReadLine());
 
        for (int row = 0; row < n; row++)
        {
            for (int col = 1; col <= n; col++)
                 Console.Write("{0} ", row+col);
 
            Console.Write("\n");
        }
    }
}

от Thunderstorm (60 точки)