Будет ли страдать время и память, если вызывать недавно созданную переменную?
Я писал программу для решения следущей задачи (решил её):
"У нас есть корабли, оснащенные 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 способ.
Буду рад конструктивной критике и более глобальным примерам. Я ведь только учусь, поэтому мыслю предметно, размышляю над тем, что сейчас вижу перед собой.