Составить алгоритм, определяющий, через сколько ударов мяч поднимется на высоту Р - C#
Формулировка задачи:
Мяч упал с высоты Н и, ударяясь о Землю, отскакивает вновь, поднимаясь каждый раз на 2/3 высоты, с которой упал.Составит алгоритм, определяющий, через сколько ударов мяч поднимется на высоту Р. (Исполнить алгоритм Н=243 см, Р=32 см.)
К сожалению, не работает ((( что надо исправить ? или цикл не тот выбрал ?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication18
{
class Program
{
static void Main(string[] args)
{
bool done = false;
double H, P, i;
Console.WriteLine("Введите высоту ");
H = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите искомую высоту ");
P = Convert.ToInt32(Console.ReadLine());
double j = 2 / 3;
for (i = H; !done; i *= j)
{
if (H < P) done = true;
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}Решение задачи: «Составить алгоритм, определяющий, через сколько ударов мяч поднимется на высоту Р»
textual
Листинг программы
using System;
class Program
{
static void Main(string[] args)
{
const double c = 2.0/3.0;
Console.WriteLine("Введите высоту ");
double h = int.Parse(Console.ReadLine());
Console.WriteLine("Введите итоговую высгоу ");
double p = int.Parse(Console.ReadLine());
Console.WriteLine("H = {0}\tP={1}\tКоэффициент потерь={2}", h, p, c);
if (h < p)
Console.WriteLine("Таких параметров быть не может");
else
Console.WriteLine("Итоговое значение количества ударов={0:N0}", Math.Ceiling(Math.Log(p/h)/Math.Log(c)));
}
}