Помощь - Поиск - Пользователи - Календарь
Полная версия: цифровой корень числа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Yaroslav
помогите решить задачу!!!найти цифровой корень числа через цикл while!!!
volvo
Yaroslav
Что значит "цифровой корень числа?"
Yaroslav
эТО ЗНАЧИТ ПРОСТОЙ КОРЕНЬ!!!!!!!
volvo
Yaroslav
Цитата из правил форума:
Цитата
И небольшое пояснение про ЗАГЛАВНЫЕ БУКВЫ: такое написание РАСЦЕНИВАЕТСЯ КАК КРИК!!! Вам приятно, когда на вас кричат?


Учитесь задавать вопросы... И пользоваться поиском. Я уже давал ссылку на решение этой задачи...
mithquessir
А что значит ПРОСТОЙ КОРЕНЬ blink.gif
Вообще-то он называется арифметическим <_<
Да и не КРИЧИ angry.gif
volvo
Yaroslav
В следующий раз хотя бы точность задавайте...
Код

const
 eps = 0.000001;

var
 x, x0, x1: real;
begin
 write('x = '); readln(x);
 x1 := 1;
 while true do
   begin
     x0 := x1; x1 := 0.5 * (x0 + x/x0);
     if abs(x0 - x1) <= eps then break
   end;

 writeln('sqrt(x) = ', x0:15:10)
end.
Yaroslav
Цитата(volvo @ 14.12.04 23:30)
Yaroslav
В следующий раз хотя бы точность задавайте...
Код

const
 eps = 0.000001;

var
 x, x0, x1: real;
begin
 write('x = '); readln(x);
 x1 := 1;
 while true do
   begin
     x0 := x1; x1 := 0.5 * (x0 + x/x0);
     if abs(x0 - x1) <= eps then break
   end;

 writeln('sqrt(x) = ', x0:15:10)
end.

Что значит eps=0.000001?
Что значит abs(x0-x1)?
Что значит writeln('sqrt(x) = ', x0:15:10)?
Спасибо за решение задачи!Она работает!
FreeMan
eps=0.000001 - c точностью до такого-то знака
abs(x0-x1) - |х0-х1|
writeln('sqrt(x) = ', x0:15:10) - вывод на экран
Yaroslav
Цитата(volvo @ 14.12.04 23:30)
Yaroslav
В следующий раз хотя бы точность задавайте...
Код

const
 eps = 0.000001;

var
 x, x0, x1: real;
begin
 write('x = '); readln(x);
 x1 := 1;
 while true do
   begin
     x0 := x1; x1 := 0.5 * (x0 + x/x0);
     if abs(x0 - x1) <= eps then break
   end;

 writeln('sqrt(x) = ', x0:15:10)
end.

Помогите пожалуйста найти цифровой корень числа через цикл while на Pascal!!!
Цифровой корень не является арифметическим!
Он высчитывается так: например:
Для числа 23456 цифровой корень высчитывается так:
2+3+4+5+6=20
2+0=2
Цифровой корень равен 2



Или для 456
4+5+6=15
1+5=6
Цифровой корень равен 6


Или для 678955
6+7+8+9+5+5=40
4+0=4
Цифровой корень равен 4
volvo
Yaroslav
Так бы сразу и говорил... Держи:
Код

var x, s: integer;
begin
 write('x = '); readln(x);
 while x >= 10 do
   begin
     s := 0;
     while x > 0 do
       begin
         s := s + (x mod 10);
         x := x div 10;
       end;
     x := s;
   end;
 writeln('root = ', x)
end.
Yaroslav
Цитата(volvo @ 17.12.04 21:36)
Yaroslav
Так бы сразу и говорил... Держи:
Код

var x, s: integer;
begin
 write('x = '); readln(x);
 while x >= 10 do
   begin
     s := 0;
     while x > 0 do
       begin
         s := s + (x mod 10);
         x := x div 10;
       end;
     x := s;
   end;
 writeln('root = ', x)
end.

эта программа работает некорректно!!!я ввожу числа и у всеч них цифровой корень равен нулю!!!перерешайте пожалуйста!!!
Yaroslav
Цитата(Yaroslav @ 19.12.04 11:36)
эта программа работает некорректно!!!я ввожу числа и у всеч них цифровой корень равен нулю!!!перерешайте пожалуйста!!!

Я ИДИОТ!!!!!!!!!Извиняюсь, всё РАБОТАЕТ!!! перерешивать не надо!спасибо!!! :yes:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.