Циклы while решение задач

Назад в начало
Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.
i = 0
while i 5:
(i)
i += 1
# Вывод:
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
Цикл while и цикл for имеют схожую структуру, НО есть одно важное различие – цикл while может быть бесконечным.
i = 0
while True:
(i)
i += 1
# Вывод:
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
# Это может продолжаться долго…
Код выше будет бесконечно печатать возрастаютщую последовательность чисел.
Цикл while можно сравнить с цикличным условным оператором.
text = ‘Hello world’
i = 0
while i len(text):
(text[i])
i += 1
# Вывод:
>>> H
>>> e
>>> l
>>> l
>>> o
>>>
>>> w
>>> o
>>> r
>>> l
>>> d
Код, приведенный выше, печатает строку посимвольно. Приведу пример аналогичного цикла for:
text = ‘Hello world’
for i in text:
(i)
# Вывод:
>>> H
>>> e
>>> l
>>> l
>>> o
>>>
>>> w
>>> o
>>> r
>>> l
>>> d
Более того, я приведу даже два цикла for!
text = ‘Hello world’
for i in range(len(text)):
(text[i])
Напомню, что отличие между двумя, приведенными выше примерами, в следующем: первый цикл проходит по элементам последовательности (в нашем случае строки), а второй – по ее индексам. Здесь также используется функция len(), которая позволяет узнать длину последовательности.
Вернемся к циклу while. Цикл while, как и цикл for, можно остановить с помощью специальной управлющей конструкции break.
j = 0
while True:
if j == 3:
(‘Выход из цикла’)
break
(j)
j += 1
# Вывод:
>>> 0
>>> 1
>>> 2
>>> Выход из цикла
Конструкция break прерывает цикл. Она очень похожа на обычное условие после ключевого слова while.
Так же есть еще одна управляющая конструкция – continue. С ее помощью мы можем не выпонять текущую итерацию (повторение) цикла и перейти сразу к следующему.
j = 0
while j 5:
j += 1
if j == 3:
(‘Пропускаем j == 3’)
continue
(j)
# Вывод:
>>> 1
>>> 2
>>> Пропускаем j == 3
>>> 4
>>> 5
Как и для цикла for, для цикла while мы можем записать конструкцию else.
from random import randint
j = 0
element = randint(0, 15)
while j 10:
j += 1
if j == element:
(‘Нашли element, он равен’, element)
break
else:
(‘Неудачная попытка’)
Примеры решения задач
Возведение числа в степень с помощью цикла while
n = int(input()) # число
k = int(input()) # степень
i = 1 # текущая степень
result = 1
while i k:
result *= n
i += 1
(result)
Сумма последовательности с помощью цикла while
n = int(input())
result = 0
i = 0
while i n:
result += i
i += 1
(result)
Ввод последовательности чисел
i = 0
while True:
n = input()
if n == ‘end’:
(‘Ввод закончен’)
(‘Было введено’, i, ‘чисел’)
break
n = int(n)
i += 1
Сумма введенных чисел
i = 0
summa = 0
while True:
n = input()
if n == ‘end’:
(‘Ввод закончен’)
(‘Было введено’, i, ‘чисел’)
(‘Их сумма равна’, summa)
break
n = int(n)
summa += n
i += 1
Решение задач
1. Дано положительное число N. Вывести все числа от 0 до N с помощью цикла while.
2. Дано положительное число N. Вывести все числа от N до 0 с помощью цикла while. Пример:
Ввод: N = 10
Вывод: 10
9
8
7
6
…
3. Даны два положительных числа K и N (K
4. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A (взятие остатка A % B)
5. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A (деление нацело A // B)
6. Дано положительное число N. Найти сумму всех четных чисел от 0 до N с помощью цикла while.
7. Даны два положительных числа K и N (K нечетных чисел от K до N с помощью цикла while.
8. Дано положительное число N. Найти факториал числа N. Факториалом числа называется произведение всех чисел от 1 до N. Например, факториал числа 5 равен 5! = 1*2*3*4*5 = 120, 2! = 1*2 = 2, 9! = 1*2*3*4*5*6*7*8*9 = 362880
9. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести YES, если не является – вывести NO.
10. Дано целое число N (> 0). Найти двойной факториал N: N!! = N * (N-2) * (N-4)* …. Для решения этой задачи посмотрите на задачу 2
Сложные задачи
1. Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3^K > N, где 3^K – это 3 в степени K или число 3, умноженное само на себя K раз. Например, 3^5 = 3*3*3*3*3. Ответом в задаче будет первая степень числа 3, которая больше, чем заданное число N. Например, если N=41, распишем степени числа три: 3^1 = 3; 3^2 = 3*3 = 9; 3^3 = 3*3*3 = 27; 3^4 = 3*3*3*3 = 27 * 3 = 81;. Таким образом, первая степень, в которую возвести число 3, превышающая число N – это 4.
В этой задаче нужно выполнять цикл while, пока остаток от деления на число три равен 0
2. Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда единиц).
Перед решением этой задачи вспомните, как найти сумму цифр трехначного числа.
3. Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида: НОД(A, B) = НОД(B, A mod B), если B = 0; НОД(A, 0) = A.
4. Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P – вещественное, 0
5. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1), K = 3, 4, …. Проверить, является ли число N числом Фибоначчи. Если является, то вывести TRUE, если нет – вывести FALSE.
6. Даны положительные числа A, B, C. На прямоугольнике размера A x B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.
7. Дано целое число N (> 1), являющееся числом Фибоначчи: N = F(K). Найти целое число K – порядковый номер числа Фибоначчи N.
Источник
Задачи цикл WHILEЗадача №1 Найти сумму и количество элементов последовательности, которые по модулю больше 0.001. Последовательность: S = 1/2 – 2/4 + 3/8 – 4/16 + … – … 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем summa1.pas 2.Присваиваем переменной sum значение ноль, переменной a=1 и b=2, так как первый элемент 1/2. знак будет меняться через один элемент и только потом каждая из переменных будет увеличиваться. 3.Алгоритм решения задачи: while a/b > 0.001 do Задача №2 Вывести все квадраты натуральных чисел, не превосходящие данного числа N. Пример: N=50 | 1 4 9 16 25 36 491.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем kvadrat.pas 2.Алгоритм решения задачи:
Задача №3 Определить и вывести на экран цифры целого числа n. Например: 453 mod 10 = 3, “1 – я цифра справа равна 3”. 45 mod 10 = 5, 2 – я цифра справа равна 5, 3 – й раз; 4 mod 10 = 4, 3 – я цифра справа равна 4, 4 div 10 = 0. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем zifru.pas 2.Переменная n для целого числа, p – для цифр числа, i – счетчик цифр. В разделе операторов С помощью оператора write выводится на экран запрос для пользователя о вводе целого числа. Оператор readln заносит его значение в память и присваивает переменной n. Счетчику i устанавливается первоначальное значение 1. В операторе while записывается условие (пока n не равно 0), при котором цикл будет выполняться. Так как в цикле несколько операторов, то используются операторные скобки begin … end. В них записаны операторы: p := n mod 10; – определяется последняя цифра; writeln(i,” – я цифра справа равна “, p); – выводится на экран порядковый номер цифры справа и сама эта цифра; n := n div 10; – от числа “зачеркивается” последняя цифра; i := i + 1; – счетчик увеличивается на 1. Задача №4 Составить программу разложения натурального числа n на простые множители. Пример: 360 = 2 2 2 3 3 5. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем mnozeteli.pas 2.Алгоритм решения задачи: В качестве первого делителя взять 2, присвоить это значение некоторой переменной i; начать цикл “пока i <= n”; если данное число n делится на i, тогда выдать на экран значение i и разделив данное число на i, присвоить новое значение той же переменной n (n := n div i); далее цикл продолжить, но значение i не увеличивать на 1, а проверить деление нового значения n на прежнее значение i; если n не делится на i, тогда i увеличить на 1 (i := i + 1) и продолжить цикл, т.е. выполнить проверку условия цикла (i <= n), а затем снова проверить деление n на уже новое значение i. Задача №5 Написать программу, в результате выполнения которой выяснится, входит ли цифра 2 в запись данного целого числа n. Пример: 365842. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем zifra2.pas 2.Алгоритм решения задачи: 1. Начало. Переменные целого типа n, p, k: n – для вводимого числа; p – для цифр этого числа; k – счетчик, подсчитывающий количество цифр в числе, равных 2. 2. Ввод целого числа. Счетчику k устанавливается первоначальное значение 0. 3. Цикл, пока n <> 0. В цикле, переменной p присваивать значение цифры числа. Если p = 2, тогда увеличивать k на единицу. Вычесть из числа n последнюю цифру и разделить его на 10. Продолжить и закончить цикл. 4. Если k = 0, тогда выдать сообщение: “Цифра 2 не входит в запись числа”, иначе, выдать сообщение: “Цифра 2 входит в запись числа”. 5. Конец. Задача №6 Составить программу вывода всех натуральных чисел, меньших n, квадрат суммы цифр которых равен заданному числу m. Пример: 21 и 4, искомые числа 2,11,20. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем kvadratsummu.pas 2.Алгоритм решения задачи: 1. Раздел описаний. Переменные: n, m, k, a, p, s. Тип целый. n – для границы значений натуральных чисел, m – для числа, с которым сравнивается квадрат суммы цифр (точный квадрат), k – для натуральных чисел от 1 до n, a – для запоминания натурального числа, перед тем, как будет определяться сумма его цифр, p – для цифр числа, s – для суммы цифр. 2. Раздел операторов. Ввод значений n и m. Установить первоначальное значение для k (эта переменная “перебирает” все натуральные числа от 1 до n, k := 1). Цикл, пока k <= n. В цикле: установить первоначальные значения для суммы s (s:=0); запомнить число в переменную a (a := k). Цикл для подсчета суммы цифр, пока k <> 0. В цикле: выделять по одной цифре числа, известным способом; прибавлять по одной цифре к сумме; уменьшать число на последнюю цифру и на порядок. Закончить цикл для подсчета суммы цифр. Проверка выполнения условия. Если квадрат суммы цифр равен заданному числу, тогда вывести это натуральное число на экран. Перейти к проверке следующего числа. Закончить основной цикл проверки чисел. 3. Закончить программу. |
Источник
Оператор цикла WHILE
Задача 1. Дано целое число а и натуральное (целое неотрицательное) число n. Вычислить а в степени n. {Введем целую переменную k, которая меняется от 0 до n, причем поддерживается такое свойство: b = (a в степени k).}
USES Crt;
VAR
A, N, B, K : INTEGER;
BEGIN
ClrScr;
Write(‘ Введите два значения ‘); ReadLn(A,N);
K := 0; B := 1;
While K <> N DO Begin
K := K + 1; B := B * A;
End;
Write(‘ A в степени N = ‘,B);
END.
Другое решение той же задачи:
USES Crt;
VAR
A, N, B, K : INTEGER;
BEGIN
ClrScr; { Чистка экрана }
Write(‘ Введите два значения ‘); ReadLn(A,N);
K := N; B := 1;
{A в степени N = B * (A в степени K)}
While K <> 0 DO Begin
K := K – 1; B := B * A;
End;
Write(‘ A в степени N = ‘,B);
END.
Задача 2. Даны натуральные числа а, b. Вычислить произведение а*b, используя в программе лишь операции +, -, =, <>.
USES Crt;
VAR
A, B, C, K : INTEGER;
BEGIN
Write(‘ Введите два значения ‘); ReadLn(A,B);
K := 0; C := 0;
While K <> B DO Begin
K := K + 1; C := C + A;
End;
{C = A * K и K = B, следовательно, C = A * B}
Write(‘ A*B= ‘,C);
END.
Задача 3. Дано натуральное (целое неотрицательное) число A и целое положительное число D. Вычислить частное Q и остаток R при делении A на D, не используя операций DIV и MOD. (Согласно определению, А = Q * D + R, 0 <= R < D.)
USES Crt;
VAR
A, D, R, Q : INTEGER;
BEGIN
ClrScr;
Write(‘ Введите два значения ‘); ReadLn(a,d);
R := A; Q := 0;
While Not (R < D) DO Begin
R := R – D; {R >= 0}
Q := Q + 1;
End;
WriteLn(‘ Частное = ‘,Q);
WriteLn(‘ Остаток = ‘,R);
END.
Задача 4. Каждый год урожайность повышается на 5%. Через сколько лет урожай удвоится?
USES Crt;
VAR
YR, KL: BYTE; YRG: REAL;
Begin
ClrScr;
Write(‘Введите урожайность ‘); ReadLn(YR);
YRG:=YR;
While (YRG <2*YR) Do Begin
YRG:=YRG+0.05*YRG;
KL:=KL+1;
End;
WriteLn(‘Новый урожай ‘,YRG:5:0);
Write(‘Через ‘,KL,’ лет урожай удвоится’);
END.
Задача 5. Деду M лет, а внуку N лет. Через сколько лет дед станет вдвое старше внука. И сколько при этом лет будет деду и внуку.
USES Crt;
VAR
M,N: BYTE; Kl: BYTE;
BEGIN
ClrScr;
Write(‘Введите количество лет деда ‘); ReadLn(m);
Write(‘Введите количество лет внука ‘); ReadLn(n);
KL:=0;
While (M>2*N) DO Begin
M:=M+1; N:=N+1; KL:=KL+1;
End;
WriteLn(M,’ лет деду’);
WriteLn(N,’ лет внуку’);
WriteLn(‘Через ‘,KL,’ лет дед вдвое станет старше внука’);
END.
Задача 6. Поле засеяли цветами двух сортов на площади S1 и S2. Каждый год площадь цветов первого сорта увеличивается вдвое, а площадь второго сорта увеличивается втрое. Через сколько лет площадь первых сортов будет составлять меньше 10% от площади вторых сортов.
USES Crt;
VAR
S1,S2:WORD; KL:BYTE;
BEGIN
ClrScr;
Write(‘Введите площадь, которую засеяли цветами 1-го сорта ‘); ReadLn(S1);
Write(‘Введите площадь, которую засеяли цветами 2-го сорта ‘); ReadLn(S2);
KL:=1;
While (S1>0.1*S2) DO Begin
S1:=S1*2; S2:=S2*3; KL:=KL+1;
End;
WriteLn(‘Площадь, которую засеяли цветами 1-го сорта ‘,S1);
WriteLn(‘Площадь, которую засеяли цветами 2-го сорта ‘,S2);
WriteLn(‘Через ‘, kl,’ лет’);
END.
Задача 7. Составить программу перевода числа из 10 системы счисления в 2 систему счисления.
Для этой задачи представлено два решения.
a)
USES Crt;
VAR
DES, OST, I, DW:INTEGER;
BEGIN
ClrScr;
Write(‘Введите десятичное число ‘); ReadLn(DES);
I:=1;
While (DES>=2) DO Begin
OST:=DES mod 2;
DES:=DES div 2;
DW:=DW+OST*I;
I:=I*10;
End;
DW:=DW+DES*I;
Write(‘Двоичная запись числа ‘,DW);
END.
b)
USES Crt;
Const A=10;
VAR
DES, OST, I:INTEGER;
DW:Array[1..100] OF INTEGER;
BEGIN
ClrScr;
Write(‘Введите десятичное число ‘); ReadLn(des);
I:=1;
While (des>=2) DO Begin
OST:=DES mod 2;
DES:=DES div 2;
DW[I]:=OST;
I:=I+1;
End;
DW[I]:=DES;
FOR I:=I DownTo 1 DO
Write(DW[I]);
END.
…………………………………………………………………………………………………………………….
Практические задания
…………………………………………………………………………………………………………………….
Составить программу, печатающую квадраты всех натуральных чисел от 0 до заданного натурального n.
Дано натуральное n, вычислить n! (0!=1, n! = n * (n-1)!).
Последовательность Фибоначчи определяется так: a(0)= 1, a(1) = 1, a(k) = a(k-1) + a(k-2) при k >= 2. Дано n, вычислить a(n).
К старушке на обед ходят кошки. Каждую неделю две кошки приводят свою подружку. В доме у старушки 100 мисок. Через какое время появятся лишние кошки, и сколько кошек при этом останется голодными.
Известна сумма номеров страниц, определить номер страницы.
Лягушка каждый последующий прыжок делает в два раза короче предыдущего. Достигнет ли она болота и за сколько прыжков. Длину первого прыжка задайте самостоятельно.
Источник
Содержание
- 1. Назначение оператора цикла while. Общая форма. Особенности использования
- 2. Понятие вложенных циклов while
- 3. Схема оператора while
- 4. Примеры решения задач с оператором цикла while
- 4.1. Вывод результатов вычисления в цикле
- 4.2. Рекурентные алгоритмы. Вычисление n-го члена последовательности
- 4.3. Вычислить значения числа π с заданной точностью
- 5. Примеры решения задач, в которых оператор while есть вложенным
- 5.1. Цикл while есть вложенным в оператор выбора switch
- 5.2. Цикл while есть вложенным в операторе цикла for
- Связанные темы
Поиск на других ресурсах:
1. Назначение оператора цикла while. Общая форма. Особенности использования
Оператор цикла while предназначен для организации циклического процесса, в котором выполнение каждой следующей итерации определяется на основе истинности некоторого условия. Оператор цикла while еще называют оператором цикла с предусловием.
Общая форма оператора цикла while следующая:
while (условие) оператор;
здесь
- условие – некоторое условие согласно синтаксису языка C#. Инструкция оператор выполняется до тех пор, пока значение условие = true. Как только значение условие становится равным false, то циклический процесс прекращается и выполняются следующие после while операторы;
- оператор – один или несколько операторов. Если в цикле while нужно выполнить несколько операторов одновременно, то эти операторы берутся в фигурные скобки { }.
Тело цикла (оператор) выполняется, пока значение условие есть истинным (true). Оператор цикла должен быть организован таким образом, чтобы в конечном счете значение условия стало равно false. Иначе, программа «зависнет», так как выйдет бесконечный цикл.
Общая форма оператора цикла while, в котором выполняются несколько (два и более) операторов имеет следующий вид
while (условие)
{
оператор1;
оператор2;
…
операторN;
}
⇑
2. Понятие вложенных циклов while
Цикл while может быть вложенным в другие конструкции. Этими конструкциями могут быть:
- циклы for, while, do…while;
- оператор условного перехода if;
- оператор выбора switch.
Количество уровней вложения, в которых может использоваться цикл while, есть неограниченным.
⇑
3. Схема оператора while
На рисунке 1 изображена схема оператора while. Как видно из схемы, сначала происходит проверка условия. Если значение условия равно True, то выполняется тело цикла. Выход из циклического процесса происходит в случае, если значение условия становится равно False.
Рисунок 1. Схема оператора while
⇑
4. Примеры решения задач с оператором цикла while
4.1. Вывод результатов вычисления в цикле
Условие задачи. Получить таблицу температур по Цельсию tc от -50 до +50 градусов а также их эквивалентов по шкале Фаренгейта tf, используя соотношение
Решение. Текст программы решения данной задачи для приложения типа Console Application, с использованием цикла while, следующий
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// шкала температур Цельсий => Фаренгейт
int tc; // текущее значение температуры по Цельсию
double tf; // значение температуры по Фаренгейту
tc = -50;
Console.WriteLine(“Шкала температур: Цельсий – Фаренгейт”);
while (tc <= 50)
{
tf = 9.0 / 5.0 * tc + 32;
tc++;
Console.WriteLine(“{0} C => {1} F”, tc, tf);
}
}
}
}
⇑
4.2. Рекурентные алгоритмы. Вычисление n-го члена последовательности
Условие задачи. Определить n-й член числовой последовательности (n>2):
xn=xn-1 + xn-2; x0 = x1 = 1
Решение. Текст программы решения данной задачи следующий:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// вычисление n-го члена последовательности
int n; // n>2
int x0, x1, x2;
int i;
// ввести значение n
Console.Write(“n = “);
n = Convert.ToInt32(Console.ReadLine());
// начальные присваивания
x0 = x1 = 1;
x2 = x0 + x1;
i = 1;
while (i <= n – 3) // вычисление
{
x0 = x1;
x1 = x2;
x2 = x0 + x1;
i++;
}
Console.WriteLine(“{0} “, x2);
}
}
}
В результате выполнения вышеприведенного кода, будет получен следующий результат
n = 7
13
⇑
4.3. Вычислить значения числа π с заданной точностью
Условие задачи. Вычислить значения числа π, используя формулу:
Определить, какое количество слагаемых нужно для определения числа π с точностью 7 знаков после запятой.
Решение. Для решения подобных задач цикл while подходит как нельзя лучше. Программный код решения задачи для приложения типа Console Application приведен ниже
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// вычислить значение числа Пи
double pi; // результат
int denom; // знаменатель
int ; // переменная, изменяющая знак числа + на -, и наоборот
double t; // дополнительная переменная – текущая точность
const double eps = 0.0000001; // точность 7 знаков после запятой
int k; // количество слагаемых для получения заданной точности
// начальные приготовления
k = 0;
pi = 0;
denom = 1;
= 1;
t = 1.0 / denom * ;
// цикл while – вычисление
while (t > eps)
{
pi = pi + 4 * t * ;
= -; // изменить знак
denom += 2; // изменить знаменатель
t = 1.0 / denom;
k++; // увеличить на 1 количество слагаемых
}
// вывод результата
Console.WriteLine(“Pi = {0}”, pi);
Console.WriteLine(“k = {0}”, k);
}
}
}
В результате выполнения вышеприведенного кода был получен следующий результат
Pi = 3.14159245358978
k = 5000000
⇑
5. Примеры решения задач, в которых оператор while есть вложенным
5.1. Цикл while есть вложенным в оператор выбора switch
В примере цикл while есть вложенным в оператор выбора switch. В зависимости от значения переменной a, выбирается соответствующий вариант нахождения суммы:
- если a=1, то вычисляется s = 5+10+…+100;
- если a=2, то вычисляется s = 5+10+…+20;
- если a=3, то вычисляется s = 5+10;
- иначе вычисляется s=100.
Программный код приложения типа Console Application, решающий данную задачу следующий:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
int a;
int s = 0;
int i;
a = 7;
// выбор алгоритма решения задачи в зависимости от значения a
switch (a)
{
case 1:
i = 0;
while (i < 100)
{
i = i + 5;
s = s + i;
}
break;
case 2:
i = 0;
while (i < 20)
{
i = i + 5;
s = s + i;
}
break;
case 3:
i = 0;
while (i < 10)
{
i = i + 5;
s = s + i;
}
break;
default:
s = 100;
break;
}
Console.WriteLine(“s = {0}”, s);
}
}
}
В результате выполнения вышеприведенного кода, на экран будет выведен результат
s = 100
⇑
5.2. Цикл while есть вложенным в операторе цикла for
Условие задачи. Найти количество делителей любого из целых чисел от 120 до 140.
Решение. Ниже приведен программный код, решающий данную задачу для приложения типа Console Application:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// число делителей любого из целых чисел от 120 до 140
int i;
int up;
int t;
int k;
for (i = 120; i <= 140; i++)
{
// определить максимально-допустимое значение делителя
up = i / 2;
k = 0; // число делителей
t = 1;
while (t <= up) // вложенный цикл while
{
if (i % t == 0) // определение: делитель или не делитель
k++;
t++;
}
// Вывести на экран делитель
Console.WriteLine(“{0}: k = {1}”, i, k);
}
}
}
}
В результате выполнения вышеприведенного кода, будет выведен следующий результат
120: k = 15
121: k = 2
122: k = 3
123: k = 3
124: k = 5
125: k = 3
126: k = 11
127: k = 1
128: k = 7
129: k = 3
130: k = 7
131: k = 1
132: k = 11
133: k = 3
134: k = 3
135: k = 7
136: k = 7
137: k = 1
138: k = 7
139: k = 1
140: k = 11
⇑
Связанные темы
- Оператор условного перехода if. Полная и сокращенная формы. Конструкция if-else-if
- Оператор выбора switch
⇑
Источник