Exam 26.03.2016 - Деление без остатък
Здравейте,
Имам един проблем в решението си.
Условието на задачата е:
Дадени са n цели числа в интервала [1…1000]. От тях някакъв процент p1 се делят без остатък на 2, друг процент p2 се делят без остатък на 3, друг процент p3 се делят без остатък на 4. Да се напише програма, която изчислява и отпечатва процентите p1, p2 и p3.
В прикаченото от мен решение се опитвам да запазя числата, които се делят на 2, 3 и 4 в отделни списъци, а след това взимам броя на тези числа от списъците, пробвах метода Count и работи, няма проблем, но в момента , в който се опитам да изчисля процентите по формулата,
например:
p1 = mod2.Count / (n * 100); получавам резултат 0, та има ли някой представа защо става така и къде точно греша?
Видях предложеното решение и знам, че наистина е много по-добро, но просто исках да довърша своето.
Благодаря предварително!
using System;
namespace DivisionWithoutRest
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int number = 0;
double p1 = 0;
double p2 = 0;
double p3 = 0;
List<int> mod2 = new List<int>();
List<int> mod3 = new List<int>();
List<int> mod4 = new List<int>();
for (int i = 0; i < n; i++)
{
number = int.Parse(Console.ReadLine());
if(number % 2 == 0)
{
mod2.Add(number);
p1 = mod2.Count / (n * 100);
}
if(number % 3 == 0)
{
mod3.Add(number);
p2 = mod3.Count / (n * 100);
}
if (number % 3 == 0)
{
mod4.Add(number);
p3 = mod4.Count / (n * 100);
}
}
Console.WriteLine("{0:N2}", p1);
Console.WriteLine("{0:N2}", p2);
Console.WriteLine("{0:N2}", p3);
}
}
}