Световое табло состоит из цветных индикаторов.
Каждый индикатор может окрашиваться в четыре цвета: белый, черный, желтый и фиолетовый.
Какое наименьшее количество лампочек должно находиться на табло, чтобы с его можно было передать 56 различных сигналов?
C WF не работал, вот что получилось:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
textBox1.TextChanged += textBox1_TextChanged;
}
private void textBox1_TextChanged(object sender, EventArgs ee) {
string res;
string[] ed = new string[10] { " ","один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять" };
string[] des = new string[10] { " ", "десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят", "восемьдесят","девяносто" };
string[] sot = new string[10] { " ", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот" };
string[] iskl = new string[10] { " ", "одинадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнfдцать","семнадцать","восемьнадцать","девятнадцать" };
int x;
if ((int.TryParse(textBox1.Text, out x)) && (x >= 0) && (x <= 1000))
{
if (x == 1000) res = "тысяча";
else if (x == 0) res = "ноль";
else {
int s = x / 100; x= x % 100; res = sot[s];
int d = x / 10; int e = x % 10;
if ((d == 1) && (e != 0)) res = res + " " + iskl[e];
else res = res + " " + des[d] + " " + ed[e];
}
label1.Text = res;
}
else label1.Text="";
}
}
}
Код и пример формы в приложении.
using System;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
Console.Write("Сумма кредита - ");
var c = Convert.ToDouble(Console.ReadLine());
Console.Write("Процент - ");
var p = Convert.ToDouble(Console.ReadLine())/100;
Console.Write("Годовой доход - ");
var r = Convert.ToDouble(Console.ReadLine());
if (r <= c * p) Console.WriteLine("Рассчитаться за кредит невозможно.");
else
Console.WriteLine($"Кол-во лет для погашения - {c / (r - c * p):0.##}");
Console.ReadKey();
}
}
}