PDA

Показать полную графическую версию : Написать пару программ с использованием цикла while


iseo
12-02-2011, 11:13
Написать 2 программы используя цикл while
1)Найти сумму всех целых чисел в диапазоне, указанном пользователем.
2)Дано натуральное число n. Написать программу, которая вычисляет факториал неотрицательных целых чисел n (т.е. число целое и больше 0). Формула вычисления факториала приведена ниже.

n! = 1*2*3*....*n, (формула вычисления факториала числа n)
0! = 1 (факториал 0 равен 1 (по определению факториала))

lxa85
12-02-2011, 11:40
iseo,а в чем проблема?
Приведи решение задачи без программного кода.
Схемкой например или чем подобным. А мы уже тут дадим наводящие вопросы, и ты всё решишь сам.

Drongo
13-02-2011, 02:06
iseo, Любая книга по программированию, первые 2 главы этому учат.

1. Дано поле чисел: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..., 1000, 1001, ..., 100000, ..., N. Как пользователем указывается диапазон?
2. Формулу вы привели, в чём сложность решения?
...
int factorial = 1;
// Указать проверку 0! = 1

for(int i = 1; i <= number; i++)
factorial *= i;
...

iseo
13-02-2011, 12:13
Диапазон вводиться с клавиатуры через пробел 2 числа.

No Need In Magic
13-02-2011, 14:21
первая решается так:

{a,b - числа, задающие промежуток}
{s - сумма }
long a,b,s;

...

s=(a+b)*( a>b ? a-b+1 : b-a+1) / 2;

iseo
15-02-2011, 09:53
#include <iostream.h>
#include <stdlib.h>
void main ()
{
int a,b,i,j;
cout<<"Введите диапазон чисел\n";
cin>>a>>b;
system("cls");
j=0;
for (i=a; i<=b; i++)
j=j+i;
cout<<j<<"\n";


}


я вот так решил первую=*)

Delirium
15-02-2011, 09:57
цикла while »
я вот так решил первую=*) »
В упор не вижу цикла while :)

Drongo
15-02-2011, 21:12
В упор не вижу цикла while »Он там. :)


iseo, Смотри, а если так сделать.

Запрос на ввод числа.
Цикл: Пока введённое число не равно нулю - выполнять блок
начало блока
Сложить введённое число с переменной хранящей результат (result += number; )
Считать следующее число. (если оно не будет равно нулю, цикл повторяется, когда будет введён нуль, выполнение цикла прерывается)
конец блока

Выводим результат сложения.

iseo
16-02-2011, 09:18
#include <iostream.h>
#include <stdlib.h>
void main()
{
int i,j,a;
cin>>i>>j;
system("cls");
a=0;
while(i <=j)
{
a+=i;
i++;}
cout<<a<<"\n";


}

А вот и через цикл while

iseo
16-02-2011, 18:49
Вот я написал факториал через for

#include <iostream.h>
void main()
{
int n,f;
cin>>n;
f=1;
for(int i=1; i<=n; i++)
f=f*i;
cout<<f<<"\n";
}




А вот через while

#include <iostream.h>
void main()
{
int f,i,n;
cin>>n;
f=1;
i=1;
while(i<=n)
{
f=f*i;
i++;}
cout<<f<<"\n";
}




© OSzone.net 2001-2012