Будет ли страдать время и память, если вызывать недавно созданную переменную?

Рейтинг: 0Ответов: 0Опубликовано: 17.05.2023

Я писал программу для решения следущей задачи (решил её):

"У нас есть корабли, оснащенные 10-ю пассажирскими капсулами. В капсулу помещается 10 пассажиров. В первую экспедицию хотят отправиться n человек. Первые 10 человек садятся в первую капсулу, вторые 10 человек – во вторую и т.д. Если в итоге останется меньше 10 человек, они грустные уходят домой. Дальше капсулы присоединяются к кораблям по 10 штук. Если в итоге останется меньше 10 капсул, они остаются на станции. Улетают только полностью укомплектованные корабли. Напиши программу, которая посчитает, сколько кораблей улетит, сколько капсул с пассажирами останется на станции и сколько человек уйдет домой. Формат входных данных Одно целое число: n – количество пассажиров. Формат выходных данных Три целых числа : количество улетевших кораблей, количество оставшихся капсул и количество ушедших домой человек."

Вот код (на его примере хочу показать, что мне нуно узнать):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lesson5
{
    class Exercise
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int ships = (n / 10) / 10;
            int capsules = n / 10 % 10;
            int sad_people = n % 10;
            Console.WriteLine($"{ships} {capsules} {sad_people}");
            Console.ReadKey();
        }
    }
}

Меня интересует следующее: можно ли для присваивания значения новой переменной вызывать предыдущую?

Сейчас покажу, что имею в виду:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lesson5
{
    class Exercise
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int ships = n / 10 / 10;
            int sad_people = n % 10;
            int happy_people = n - sad_people; //добавим "счастливых людей", что уместились в капсулы, чтоб пример удался
            int gone_capsules = happy_people / 10; // те капсулы, что до присоединения к кораблю
            int remaining_capsules = happy_people / 10 % 10; //всё те же оставшиеся капсулы
            Console.WriteLine($"{ships} {remaining_capsules} {sad_people}");
            Console.WriteLine($"{gone_capsules} {happy_people}");
            Console.ReadKey();
        }
    }
}

Ведь можно решить всё через n, но страдает ли время выполнения кода, количество памяти, выделяемой в стеке, независимость отдельных частей программы, если использовать 2 способ.

Буду рад конструктивной критике и более глобальным примерам. Я ведь только учусь, поэтому мыслю предметно, размышляю над тем, что сейчас вижу перед собой.

Ответы

Ответов пока нет.