0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 12
1

Нумеролог с++

24.11.2018, 14:28. Показов 2682. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
о предсказать судьбу человека, нумеролог берет время жизни человека в секундах,а затем добавляет все цифры вместе. Если эта сумма цифр больше одной цифры, то" дополнительная " операция повторяется до тех пор, пока она не станет одной цифрой. Затем, чтобы выяснить судьбу человека нумерологу необходимо общее количество операций, необходимых для преобразования числа из источника в цифру Сигле.

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

Вход:
Одно число N - (1 <= Н <= 1000)

Выход:
Два числа - первое-это однозначное число,второе число операций, необходимых для преобразования.
В ЧЕМ ПРОБЛЕМА ПИШЕТ TIME LEFT
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <stdlib.h>
using namespace std;
int DoIt(int sec, int & attCount)
{
 
  if (sec < 10)
    return sec;
 
 
  int sum(0);
 
  
  while (sec > 0)
  {
    attCount++;
    sum += sec % 10;
    sec = sec / 10;
  }
  attCount--;
 
  return DoIt(sum, attCount);
 
}
 
int main()
{
 
  while (true)
  {
    int secCount, result, opCount;
    cout << " ";
    cin >> secCount;
    opCount = 0;
    result = DoIt(secCount, opCount);
    cout << " " << result<< opCount << " ";
  }
  
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2018, 14:28
Ответы с готовыми решениями:

Нумеролог
Чтобы предсказать судьбу человека, нумеролог берет время жизни человека в секундах, затем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
98 / 64 / 36
Регистрация: 14.10.2018
Сообщений: 152
24.11.2018, 16:08 2
Так? Для остановки ввода нужно ввести Ctrl + Z или любую букву
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
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int DoIt(int sec, int & attCount) {
 
    if (sec < 10)
        return sec;
 
 
    int sum(0);
 
 
    while (sec > 0) {
        attCount++;
        sum += sec % 10;
        sec = sec / 10;
    }
    attCount--;
 
    return DoIt(sum, attCount);
 
}
 
int main() {
    int secCount, result, opCount;
    while (cin >> secCount) {
        opCount = 0;
        result = DoIt(secCount, opCount);
        cout << " Сумма всех цифр числа до получения одной цифры " << result << " Количество операций"<<opCount << " "<<std::endl;;
    }
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 12
24.11.2018, 16:14  [ТС] 3
а как сделать так чтоб после 1 ввода программа остановилось
0
98 / 64 / 36
Регистрация: 14.10.2018
Сообщений: 152
24.11.2018, 16:23 4
Просто убрать цикл while
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
25
26
27
28
29
30
31
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int DoIt(int sec, int & attCount) {
 
    if (sec < 10)
        return sec;
 
 
    int sum(0);
 
 
    while (sec > 0) {
        attCount++;
        sum += sec % 10;
        sec = sec / 10;
    }
    attCount--;
 
    return DoIt(sum, attCount);
 
}
 
int main() {
    int secCount, result, opCount = 0;
    cin >> secCount;
    result = DoIt(secCount, opCount);
    cout << " Сумма всех цифр числа до получения одной цифры " << result << " Количество операций" << opCount << " " << std::endl;
    return 0;
}
P.S. рекомендую пробежаться по основам языка, обязательно пригодится
1
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 12
24.11.2018, 16:56  [ТС] 5
можете написать другой код этот код не принимает наш контестр
0
24.11.2018, 16:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru