W.1. Обработка числовых последовательностей (операторы цикла с условием — while, do…while)

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи. Пример решения.

Внимание! Под делителями целого числа n (n > 1) в нижеследующих задачах следует понимать простые числа (в смысле основной теоремы арифметики, n не равно 1). Например: 12=2*2*3, 27 = 3*3*3, 205=5*41 (составные числа), 257=257 (простое число, без сомножителя 1). Если n=1, то считать, что один делитель = 1.

Решены задачи: 1-14, 19-20. Не решены: 14-18.

Задачи

W1.1. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти:
а) сумму всех чисел последовательности;
б) количество всех чисел последовательности.
Пример решения.

W1.2. Дана непустая последовательность неотрицательных целых чисел, оканчивающаяся отрицательным числом. Найти среднее арифметическое всех чисел последовательности (без учета отрицательного числа).

W1.3. Дана последовательность из n вещественных чисел. Первое число в последовательности нечетное. Найти сумму всех идущих подряд в начале последовательности нечетных чисел. Условный оператор не использовать.

W1.4. Дана последовательность из n вещественных чисел, начинающаяся с отрицательного числа. Определить, какое количество отрицательных чисел записано в начале последовательности. Условный оператор не использовать.

W1.5. Дана последовательность целых чисел a1, a2, …, a30, в начале которой записано несколько равных между собой элементов. Определить количество таких элементов последовательности. Условный оператор не использовать.

W1.6. Дана последовательность вещественных чисел a1, a2, …, a40, упорядоченная по возрастанию, и число n, не равное ни одному из чисел последовательности и такое, что a1< n<a40 .
а) Определить сумму чисел последовательности, меньших n.
б) Найти два элемента последовательности (их порядковые номера и значение) в интервале, между которыми находится значение n.
Примечание. В обеих задачах условный оператор не использовать.

W1.7. Дана непустая последовательность положительных целых чисел a1, a2, …, оканчивающаяся нулем. Получить a1, a1 · a2, a1 · a2 · a3, …, 0.

W1.8. Дано число n. Из чисел 1, 4, 9, 16, 25, … напечатать те, которые не превышают n.

W1.9. Среди чисел 1, 4, 9, 16, 25, … найти первое число, большее n.

W1.10. Дано число n.
а) Напечатать те натуральные числа, квадрат которых не превышает n.
б) Найти первое натуральное число, квадрат которого больше n.

W1.11. Дано число а (1 < а <= 1,5). Из чисел 1 + 1/2 , 1 + 1/3 , … напечатать те, которые не меньше а.

W1.12. Дано число а (1 < а <= 1,5). Среди чисел 1 + 1/2 , 1 + 1/3 , … найти первое, меньшее а.

W1.13. Рассмотрим последовательность чисел: 1+1/2, 1+1/3, … , 1+1/n. Напечатать все значения n, при которых все числа последовательности будут не меньше а (1 < а <= 1,5).

W1.14. Дано число а (1 < а <= 1.5). Найти такое наименьшее n, что в последовательности чисел 1+1/2 , 1+1/3 , …, 1+1/n последнее число будет меньше а.

W1.15. Даны вещественные числа а и b (1 < a < 1.5, 1 < b < 1.5, a < b). Из чисел 1, 1+1/2 , 1+1/3 , …, напечатать те числа c, для которых выполняется условие а < c < b.

W1.16. Среди чисел 1, 1+1/2 , 1+1/2+1/3 , … найти первое, большее числа a, причем 4 < a < 6.

W1.17. Дано вещественное число а (2 < a < 5). Напечатать все значения n, при которых (1 + 1/2 + 1/3 + … + 1/n) < a.

W1.18. Дано вещественное число а (9 < a < 10). Найти такое наименьшее n, что 1 +1/2 + 1/3 +…+ 1/n > a.

W1.19. Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2, …, в которой числитель (знаменатель) следующего члена последовательности получается сложением числителей (знаменателей) двух предыдущих членов. Числители двух первых дробей равны 1 и 2, знаменатели — 1 и 1. Найти первый член такой последовательности, который отличается от предыдущего члена не более чем на 0,001.

W1.20. Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1, каждый следующий равен сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13, …). Найти:
а) первое число в последовательности Фибоначчи, большее n (значение n вводится с клавиатуры; n > 1);
б) сумму всех чисел в последовательности Фибоначчи, которые не превосходят 1000.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
14 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

// W1.8. Дано число n. Из чисел 1, 4, 9, 16, 25, … напечатать те, которые не превышают n.

           int n = int.Parse(Console.ReadLine());
          for (int i =1; i <= n; i++)
           {

               Console.WriteLine(Math.Pow(i, 2));
           }

{
           // W1.2. Дана непустая последовательность неотрицательных целых чисел, оканчивающаяся отрицательным числом.
           // Найти среднее арифметическое всех чисел последовательности (без учета отрицательного числа).

           double n = 0, s = 0, a = 1; //count sum
           do
           {
               Console.Write(«Введите целое число: «);
               a = Convert.ToDouble(Console.ReadLine());
               s += a;
               n++;

           }
           while (a >= 0);
           Console.WriteLine(s/n);
           Console.ReadKey();

       }

W.1. Обработка числовых последовательностей (операторы цикла с условием — while, do…while)

using System;
//W.1. Обработка числовых последовательностей (операторы цикла с условием — while, do…while)
namespace W1
{
    class Program
    {
        static double Input (string Name, double Min = -1.7E308, double Max = 1.7E308, double Exception1 = 1.7E308, double Exception2=1.7E308)
        {
            Console.WriteLine($"Введите {Name}:");
            double Num;
            while (!(double.TryParse(Console.ReadLine(), out Num) && Num >=Min && Num <= Max && Num != Exception1 && Num!=Exception2)) Console.WriteLine($"Введено неверно значение, введите {Name}");
            return Num;
        }
        static void Main()
        {
            //W1.1
            Console.WriteLine("W1.1. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти: а) сумму всех чисел последовательности; б) количество всех чисел последовательности.");
            double N1 = Input("последовательность целых чисел, оканчивающуюся нулем");
            while (!(N1 % 10 == 0)) N1 = Input("последовательность целых чисел, оканчивающуюся НУЛЁМ (0)!");
            string S1 = Convert.ToString(N1);
            int N1sum=0;
            int N1count = S1.Length;
            for (int a= 0; a < N1count; a++)
            {
                N1sum += Convert.ToInt32(String.Format("{0:x}",S1[a])) ;
            }
            Console.WriteLine($"Сумма всех членов последовательности: {N1sum};\nКоличество членов последовательности {N1count}");
            Console.ReadKey();
            Console.Clear();
            //W1.2
            Console.WriteLine("W1.2. Дана непустая последовательность неотрицательных целых чисел, оканчивающаяся отрицательным числом. Найти среднее арифметическое всех чисел последовательности (без учета отрицательного числа).");
            double N2 = 0;
            double N2sum=0;
            double N2count = 0;
            do
            {
                N2 = Input($"{N2count + 1}-е число");
                if (N2 < 0) break;
                N2sum += N2;
                N2count += 1;
            }
            while (N2 >= 0);
            Console.WriteLine($"Среднее арифметическое {N2sum/N2count}");
            Console.ReadKey();
            Console.Clear();
            //W1.3
            Console.WriteLine("W1.3. Дана последовательность из n вещественных чисел. Первое число в последовательности нечетное. Найти сумму всех идущих подряд в начале последовательности нечетных чисел. Условный оператор не использовать.");
            double N3 = Input("последовательность чисел, начиная с нечетного числа",1);
            int N3sum = 0;
            int N3temp = 0;
            while (Int32.Parse(Convert.ToString(Convert.ToString(N3)[0])) % 2 == 0) N3 = Input("последовательность чисел, начиная с НЕЧЕТНОГО числа",1);
            string S3 = Convert.ToString(N3);
            do
            {
                N3sum += Int32.Parse(Convert.ToString(S3[N3temp]));
                N3temp++;
            }
            while (N3temp < S3.Length && Int32.Parse(Convert.ToString(S3[N3temp])) % 2 == 1);
            Console.WriteLine(N3sum);
            Console.ReadKey();
            Console.Clear();
            //W1.4
            Console.WriteLine("W1.4. Дана последовательность из n вещественных чисел, начинающаяся с отрицательного числа. Определить, какое количество отрицательных чисел записано в начале последовательности. Условный оператор не использовать.");
            int N4count = 0;
            int N4 = 0;
            do
            {
                N4 = (int)Input($"Введите {N4count + 1}-e число последовательности");
                N4count++;
            }
            while (N4 < 0);
            Console.WriteLine($"В начале последовательности {N4count-1} отрицательных чисел");
            Console.ReadKey();
            Console.Clear();
            //W1.5
            Console.WriteLine("W1.5. Дана последовательность целых чисел a1, a2, …, a30, в начале которой записано несколько равных между собой элементов. Определить количество таких элементов последовательности. Условный оператор не использовать.");
            int N5count = 0;
            int N5first = (int) Input("1-е число последовательности");
            int N5 = -2147483648;
            do
            {
                N5 = (int)Input($"{N5count + 2}-e число последовательности");
                N5count++;
            }
            while (N5first == N5);
            Console.WriteLine($"В начале последовательности записано {N5count} одинаковых чисел");
            Console.ReadKey();
            Console.Clear();
            //W1.6
            Console.WriteLine("W1.6. Дана последовательность вещественных чисел a1, a2, …, a40, упорядоченная по возрастанию, и число n, не равное ни одному из чисел последовательности и такое, что a1< n<a40 .\nа) Определить сумму чисел последовательности, меньших n.\nб) Найти два элемента последовательности(их порядковые номера и значение) в интервале, между которыми находится значение n.\nПримечание.В обеих задачах условный оператор не использовать.");
            int[] N6M = new int [40];
            for (int a= 0; a < N6M.Length; a++)
            {
                N6M[a] = (a+1)*2;
            }
            int N6 = 0;
            while (N6 % 2 == 0)
            {
                N6 = (int)Input("нечетное число от 3 до 79", 3, 79);
            }
            int N6sum=2;
            int N6border=0;
                while (N6M[N6border]<N6-2)
                {
                    N6sum += N6M[N6border+1];
                    N6border ++;
                }
            Console.WriteLine($"Число {N6} находится межу числами {N6M[N6border]}({N6border+1}) и {N6M[N6border+1]}({N6border+2})\nСумма последовательнотсти до {N6} равна {N6sum}");
            Console.ReadKey();
            Console.Clear();
            //W1.7
            Console.WriteLine("W1.7. Дана непустая последовательность положительных целых чисел a1, a2, …, оканчивающаяся нулем. Получить a1, a1 · a2, a1 · a2 · a3, …, 0.");
            int N7count = 0;
            int N7exp = 1;
            int N7 = 1;
            while (N7 != 0)
            {
                N7count++;
                N7exp *= N7;
                N7 = (int)Input($"число a{N7count}");
            }
            Console.WriteLine(N7exp);
            Console.ReadKey();
            Console.Clear();
            //W1.8
            Console.WriteLine("W1.8. Дано число n. Из чисел 1, 4, 9, 16, 25, … напечатать те, которые не превышают n.");
            int N8 = (int)Input("число N",1);
            for (int a = 1; Math.Pow(a,2)<N8; a++)
            {
                Console.WriteLine(Math.Pow(a,2));
            }
            Console.ReadKey();
            Console.Clear();
            //W1.9
            Console.WriteLine("W1.9. Среди чисел 1, 4, 9, 16, 25, … найти первое число, большее n.");
            int N9 = (int)Input("число n", 1);
            int N9A = 0;
            int N9B = 0;
            do
            {
                N9A++;
                N9B = (int)Math.Pow(N9A, 2);
            }
            while (N9 >= N9B);
            Console.WriteLine(N9B);
            Console.ReadKey();
            Console.Clear();
            //W1.10
            Console.WriteLine("W1.10. Дано число n.\nа) Напечатать те натуральные числа, квадрат которых не превышает n.\nб) Найти первое натуральное число, квадрат которого больше n.");
            int N10 = (int)Input("число n",1);
            int N10A = 1;
            int N10B = 0;
            while (N10 >= N10B)
            {
                Console.Write($"{N10A} ");
                N10A++;
                N10B = (int)Math.Pow(N10A, 2);
            }
            Console.WriteLine($"\n{N10A}");
            Console.ReadKey();
            Console.Clear();
            //W1.11
            Console.WriteLine("W1.11. Дано число а (1 < а <= 1,5). Из чисел 1 + 1/2 , 1 + 1/3 , … напечатать те, которые не меньше а.");
            double N11 = Input("число A",1,1.5,1);
            double N11A = 2;
            while (N11<=(1+1/N11A))
            {
                Console.Write($"1+1/{N11A}, ");
                N11A++;
            }
            Console.ReadKey();
            Console.Clear();
            //W1.12
            Console.WriteLine("W1.12. Дано число а (1 < а <= 1,5). Среди чисел 1 + 1/2 , 1 + 1/3 , … найти первое, меньшее а.");
            double N12 = Input("число а", 1,1.5,1);
            double N12A = 2;
            while (N12<=1+(1/N12A))
            {
                N12A++;
            }
            Console.WriteLine($"1+1/{N12A}");
            Console.ReadKey();
            Console.Clear();
            //W1.13
            Console.WriteLine("W1.13. Рассмотрим последовательность чисел: 1+1/2, 1+1/3, … , 1+1/n. Напечатать все значения n, при которых все числа последовательности будут не меньше а (1 < а <= 1,5).");
            double N13 = Input("число A", 1, 1.5, 1);
            double N13A = 2;
            while(N13 <= 1+(1/N13A))
            {
                Console.Write($"{N13A} ");
                N13A++;
            }
            Console.ReadKey();
            Console.Clear();
            //W1.14
            Console.WriteLine("W1.14. Дано число а (1 < а <= 1.5). Найти такое наименьшее n, что в последовательности чисел 1+1/2 , 1+1/3 , …, 1+1/n последнее число будет меньше а.");
            double N14 = Input("число а", 1,1.5,1);
            double N14A = 2;
            while (N14 < 1+(1/N14A))
            {
                N14A++;
            }
            Console.WriteLine(N14A-1);
            Console.ReadKey();
            Console.Clear();
            //W1.15
            Console.WriteLine("W1.15. Даны вещественные числа а и b (1 < a < 1.5, 1 < b < 1.5, a < b). Из чисел 1, 1+1/2 , 1+1/3 , …, напечатать те числа c, для которых выполняется условие а < c < b.");
            double N15A = Input("число A", 1, 1.5 , 1,1.5);
            double N15B = Input("Число B", N15A, 1.5, N15A, 1.5);
            double N15C = 2;
            while (N15A < 1+(1/N15C))
            {
                if (N15B>1+(1/N15C)) Console.Write($"1+1/{N15C}, ");
                N15C++;
            }
            Console.ReadKey();
            Console.Clear();
            //W1.16
            Console.WriteLine("W1.16. Среди чисел 1, 1+1/2 , 1+1/2+1/3 , … найти первое, большее числа a, причем 4 < a < 6.");
            double N16 = Input("число А", 4,6,4,6);
            double N16sum = 1;
            double N16temp = 2;
            while (N16 >= N16sum)
            {
                N16sum += (1 / N16temp);
                N16temp++;
            }
            Console.WriteLine($"Цикл {N16temp-1}, число {N16sum}");
            Console.ReadKey();
            Console.Clear();
            //W1.17
            Console.WriteLine("W1.17. Дано вещественное число а (2 < a < 5). Напечатать все значения n, при которых (1 + 1/2 + 1/3 + … + 1/n) < a.");
            double N17 = Input("число А", 2,5,2,5);
            double N17N = 1;
            double N17sum = 0;
            while (N17sum<N17)
            {
                Console.Write($"{N17N}, ");
                N17N++;
                N17sum += 1 / N17N;
            }
            Console.ReadKey();
            Console.Clear();
            //W1.18
            Console.WriteLine("W1.18. Дано вещественное число а (9 < a < 10). Найти такое наименьшее n, что 1 +1/2 + 1/3 +…+ 1/n > a.");
            double N18 = Input("чило а", 9, 10, 9, 10);
            double N18N = 1;
            double N18sum = 0;
            while (N18sum<=N18)
            {
                N18sum += 1 / N18N;
                N18N++;
            }
            Console.WriteLine(N18N - 1);
            Console.ReadKey();
            Console.Clear();
            //W1.19
            Console.WriteLine("W1.19. Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2, …, в которой числитель (знаменатель) следующего члена последовательности получается сложением числителей (знаменателей) двух предыдущих членов. Числители двух первых дробей равны 1 и 2, знаменатели — 1 и 1. Найти первый член такой последовательности, который отличается от предыдущего члена не более чем на 0,001.");
            double N19A1 = 1;
            double N19B1 = 1;
            double N19A2 = 2;
            double N19B2 = 1;
            double N19temp;
            while (Math.Abs((N19A2 / N19B2) - (N19A1 / N19B1)) > 0.001)
            {
                N19temp = N19A2;
                N19A2 += N19A1;
                N19A1 = N19temp;
                N19temp = N19B2;
                N19B2 += N19B1;
                N19B1 = N19temp;
            }
            Console.WriteLine($"{N19A2}/{N19B2}");
            Console.ReadKey();
            Console.Clear();
            //W1.20
            Console.WriteLine("W1.20. Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1, каждый следующий равен сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13, …). Найти\nа) первое число в последовательности Фибоначчи, большее n(значение n вводится с клавиатуры; n > 1);\nб) сумму всех чисел в последовательности Фибоначчи, которые не превосходят 1000.");
            int N20 = (int)Input("число n", 1);
            int N20A = 1;
            int N20B = 1;
            int N20temp;
            double N20sum = 2;
            while (N20B <= N20 || N20B <= 1000)
            {
                N20temp = N20B;
                N20B += N20A;
                N20A = N20temp;
                if (N20B > N20 && N20A <= N20) Console.WriteLine(N20B);
                if (N20B <= 1000) N20sum += N20B;
            }
            Console.WriteLine(N20sum);
            Console.ReadKey();
            Console.Clear();
        }
    }
}


W1.15. Даны вещественные числа а и b (1 < a < 1.5, 1 < b < 1.5, a < b). Из чисел 1, 1+1/2 , 1+1/3 , …, напечатать те числа c, для которых выполняется условие а < c < b.

            {
                c = 1 + (1 / temp);
                if(a<c && c<b)
                {
                    Console.WriteLine(c);
                }
                temp++;
            }

Алексей В, есть движение в верном направлении, но оно не закончено явно.

Важно: Вы можете поддержать проект и автора.

Опять половина кода исчезла :|

Алексей В, мы работаем над решением этой проблемы

Важно: Вы можете поддержать проект и автора.
Важно: Вы можете поддержать проект и автора.

W1.2. Дана непустая последовательность неотрицательных целых чисел, оканчивающаяся отрицательным числом. Найти среднее арифметическое всех чисел последовательности (без учета отрицательного числа).

int n = 0, s = 0, a = 1;
while (a > 0)
{
   Console.Write("Введите целое число: ");
   a = Convert.ToInt32(Console.ReadLine());
   if(a > 0)
     {
        s += a;
        n++;
     }
}
Console.WriteLine("Сумма = {0}, всего чисел = {1}", s, n);
Важно: Вы можете поддержать проект и автора.

W1.15. Дано вещественное число а. Из чисел 1, 1+1/2 , 1+1/3 , …, напечатать те, которые меньше а.

Задача при любом «а» будет вести цикл к бесконечности.

Важно: Вы можете поддержать проект и автора.
Важно: Вы можете поддержать проект и автора.
14
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x