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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
midda
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 24
#1

Определить суму цифр заданного числа без использования операций целочисленного деления - C++

03.03.2013, 18:59. Просмотров 871. Ответов 22
Метки нет (Все метки)

Дано натуральное число n. Определить суму цифр заданного числа без использования
операций целочисленного деления, а при помощи вложенных циклов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить суму цифр заданного числа без использования операций целочисленного деления (C++):

Вложенные циклы. Определить суму цифр заданного числа без использования операций целочисленного деления - C++
Помогите решить задачку)) Дано натуральное число n. Определить суму цифр заданного числа без использования операций целочисленного...

Найти суму четных цифр заданного числа - C++
#include <iostream> #include <math.h> #include <windows.h> using namespace std; int main() { int f,d,S; ...

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра 2 - C++
//Дано целое число N(> 0).С помощью операций деления нацело и взятия остатка от деления определить, имеется //ли в записи числа N цифра...

Дано натуральные числа n и m. Определить суму m последних цифр числа n. - C++
Помогите решить при помощи циклов решить задачу: Дано натуральные числа n и m. Определить суму m последних цифер числа n.

Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа VS2010 - C++
тупая задача на новый лад - С++: Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа. Есть наметки,...

Найти сумму цифр заданного числа без учёта последней цифры через цикл while - C++
У меня есть код программы: #include "stdafx.h" #include "stdio.h" void main() { int n,s; printf("n= \n"); scanf("%d",&n); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
icpu
323 / 228 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
03.03.2013, 21:25 #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
  int n;
  printf("n=");
  scanf("%i",&n);
  int summ = 0;
    int j = n;
    for (int i = 100000000; i >= 1; i = int (i * 0.1)){
      printf("i=%ld\n",i);
        for (; j >= i; j -=i)
            summ++;
}
printf("s=%i",summ);
  return 0;
}
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.03.2013, 21:27 #17
Цитата Сообщение от midda Посмотреть сообщение
без использования
операций целочисленного деления
Ну, извращаться так извращаться
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
#include <iostream>
#include <boost/regex.hpp>
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/home/qi.hpp>
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
 
namespace qi = boost::spirit::qi;
namespace ascii = boost::spirit::ascii;
namespace phoenix = boost::phoenix;
    
template <typename Iterator>
bool adder(Iterator first, Iterator last, int& n)
{
  using phoenix::ref;
  using qi::_1;
  using qi::int_;
  
  return qi::phrase_parse(first, last, int_[ref(n) = _1] >> *('+' >> int_[ref(n) += _1]), qi::space);
}
 
int main()
{
   for (std::string str; std::cin >> str; )
   {
      if (str[0] == '-')
         str.erase(str.begin());
         
      str = boost::regex_replace(str, boost::regex("\\d(?=\\d)"), "$0+", boost::match_default | boost::format_all);
      
      int res;
      adder(str.begin(), str.end(), res);
      
      std::cout << res << std::endl;
   }
}
Результат: http://liveworkspace.org/code/3E4eqx
icpu
323 / 228 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
03.03.2013, 21:29 #18
diagon, борланд.
midda
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 24
03.03.2013, 21:39  [ТС] #19
это капец) это слишком сложное решение простой задачи..)
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
03.03.2013, 23:20 #20
Цитата Сообщение от midda Посмотреть сообщение
это капец) это слишком сложное решение простой задачи..)
Переводи число в строку через sprintf, и уже пробегая по строке складывай цифры.
midda
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 24
04.03.2013, 00:18  [ТС] #21
В смысле "пробегая по строке складывай цифры"? как это осуществить? что значит Переводи число в строку через sprintf?
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
04.03.2013, 00:52 #22
Цитата Сообщение от midda Посмотреть сообщение
как это осуществить? что значит Переводи число в строку через sprintf?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int number = 123456;
    char buf[20];
    sprintf(buf, "%d", number);
    int sum = 0;
    for (char *p = buf; *p; ++p)
        sum += *p - '0';
    printf("number=%d\nsum=%d", number, sum);
    return 0;
}
midda
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 24
04.03.2013, 19:54  [ТС] #23
Вот правильный

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
main()
{
int n,x,s=0,i=0;
printf("n=");
scanf("%i",&n);
 x=n;
while(x>9)
{
 while(x>9)
 {
  x-=10;
  i++;
  }
  s+=x;
  x=i;
  i=0;
}
s+=x;
printf("s=%i",s);
getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 19:54
Привет! Вот еще темы с ответами:

Определить равна ли сумма k цифр дробной части заданного вещественного числа сумме цифр целой части - C++
Помогите доделать задание, исправьте пожалуйста код!!! Срочно! Задание: Выполнить задания, выделяя цифры числа, хранящегося в переменной...

Определить сумму цифр любого заданного числа - C++
Помогите написать программу С++ которая будет решать такую задачу: &quot;Определить сумму цифр любого заданного числа.&quot; Заранее...

Определить, есть ли среди цифр заданного числа одинаковые - C++
Помогите.. Есть код #include &lt;iostream.h&gt; #include &lt;conio.h&gt; int main(int argc, char* argv) { int a = 144, edinici,...

Определить, есть ли среди цифр заданного трёхзначного числа одинаковые - C++
на СИ 1 дано трёхзначное число, определить, есть ли среди его цифр одинаковые??


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.03.2013, 19:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru