Arrays - Exercises 02 Rotate and Sum
Здравейте, пробвам се да реша задачата с ротация и сумиране, но след 1 часово пробване стигнах до тук.
Въвеждам масива и числото, обръщам масива както е дадено в условието, но след това си задавам въпросите как да го обърна втори път и как да го сумирам като пробвам от 1 час разни кодове гледам и от нета примерни, но не ми се получава.
using System;
using System.Linq;
class LargestCommonEnd
{
static string[] shiftRight(string[] arr)
{
string[] demo = new string[arr.Length];
string[] sum = new string[arr.Length];
int k = int.Parse(Console.ReadLine());
for (int j = 1; j <= k; j++)
{
for (int i = 1; i < arr.Length; i++)
{
demo[i] = arr[i - 1];
}
Console.WriteLine(string.Join(" ", demo));
}
//const int n = 5;
//int[] a = new int[n] { 10, 20, 30, 40, 50 };
//int[] b = new int[n] { 5, 4, 3, 2, 1 };
//int[] arr = new int[n];
demo[0] = arr[demo.Length - 1];
return demo;
}
//public static string sum(string[] x)
//{
// int k = int.Parse(Console.ReadLine());
// string sum = 0;
// for (int i = 0; i < demo.length; i++)
// {
// sum += x[i];
// }
// return sum;
//}
static void Main(string[] args)
{
string[] wordsFirst = Console.ReadLine().Split(' ').ToArray();
//int countLeftRight = 0;
//int countRightLeft = 0;
//for (int i = 0; i < wordsFirst.Length && i < wordsSecond.Length; i++)
//{
//}
//for (int j = 0; j < wordsFirst.Length && j < wordsSecond.Length; j++)
//{
//}
shiftRight(wordsFirst);
}
}
nums[0] = temp;
Това накрая не разбирам какво прави точно.
Първо на променливата temp се присвоява стойноста на последният индекс от масива. След като приключи вторият цикъл имаме един масив със стойности без последната, като стойноста в клетка [0] и [1] е една и съща. За това след това на клетка [0] присвояваме вече запазената стойност от последната клетка.