Форум программистов, компьютерный форум CyberForum.ru

Цифровой корень числа - C++

Восстановить пароль Регистрация
 
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 170
13.11.2013, 20:15     Цифровой корень числа #1
Найти цифровой корень натурального числа (складываются все цифры числа, затем все цифры
найденной суммы и т.д. до тех пор, пока не будет получено однозначное число).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <conio.h>
 
void main()
{
  int n,s;
  clrscr();
  printf("Введите натуральное число n: ");
  scanf("%d", &n);
  s=0;
  do
    {
      s=(s+n)%10;
      n=n/10;
      if ((s/10)!=0 && n==0);
    {
      n=s;
      s=0;
    }
    }
  while (n=0);
  printf("Цифровой корень = %d\n", s);
  getch();
}
Сумма всегда 0. Что изменить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 20:15     Цифровой корень числа
Посмотрите здесь:

Составить рекурсивную функцию, которая находит цифровой корень целого числа C++
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ C++
C++ Реализовать программу, которая для заданного N (N<10100) находит его цифровой корень
Напечатать все числа интервала [100,200], цифровой корень которых кратный (3,6,9) C++
Определить количество цифр с наименьшим значением в цифровой записи данного числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4838 / 2977 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
13.11.2013, 20:18     Цифровой корень числа #2
Точку с запятой в 15-й строке убери.
В 21-й, видимо: !=
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 170
13.11.2013, 20:26  [ТС]     Цифровой корень числа #3
castaway, отлично, но... неправильно.

Добавлено через 6 минут
Нет, ввожу, например 1988 - должно быть 8, а выдает 6.
Байт
 Аватар для Байт
13951 / 8782 / 1221
Регистрация: 24.12.2010
Сообщений: 15,888
13.11.2013, 21:06     Цифровой корень числа #4
Rakot568, Твой цикл do..while работает ровно 1 раз. n=0 - это присвоение, его результат всегда 0, т.е. false.
Сравнение это "=="
Остального даже смотреть не стал. Если есть такая грубая "детская" ошибка, тобой не замеченная, навярняка есть и другие.
Yandex
Объявления
13.11.2013, 21:06     Цифровой корень числа
Ответ Создать тему
Опции темы

Текущее время: 22:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru