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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
#1

Сумма цифр в числе - C++

12.08.2011, 20:22. Просмотров 1707. Ответов 29
Метки нет (Все метки)

Помогите пожалуйста.. не могу понять почему он не выводит результат?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fstream>
using namespace std;
int main() {
      int n;
      int i;
      ifstream in( "input.txt");      
      if ( !in) return 1;           
      in >>n ;
      int a[n];
      int b=0;
      for(i=n;i>=0;i--)
      {
        b=b+a[i];             
                      }
      in.close();                       
      ofstream out( "output.txt");      
      if ( !out) return 1;              
      out << b;                        
      out.close();                      
      return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2011, 20:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма цифр в числе (C++):

Рекурсия: количество цифр в числе, сумма цифр и реверс числа - C++
Вот задание: Написать программу, которая запрашивает у пользователя целое число, на экран выводит сколько цифр в числе, их сумму и...

Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр - C++
Дано натуральное число n (n&lt;=100). Определить сколько цифр в числе n, чему равна сумма его цифр.

Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру - C++
Желательно в С

Сумма цифр в числе - C++
Определить сумму цифр в числе.

Сумма цифр в данном числе - C++
Составить алгоритм определения количества 2N-значных чисел из которых сумма N первых цифр равна сумме N последних. N - произвольное...

Сколько цифр в числе и чему равна их сумма? - C++
дано натуральное число n(n&lt;=100) a) Сколько цифр в числе n? б) Чему равно сумма его чисел? в) Найти последнюю цифру г) первую...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Preveter
9 / 9 / 1
Регистрация: 11.08.2011
Сообщений: 66
12.08.2011, 22:05 #16
Цитата Сообщение от Алексaндр Посмотреть сообщение
Ноль ведь можно и не добавлять. Так на 1 шаг меньше и время экономим =)
Ну тогда можно так:

C++
1
2
3
4
5
6
7
8
9
b=1;
if (n<0)
    for(i=-1;i>=n;i--){
        b=b+i;             
    }
if (n>1)
    for(i=2;i<=n;i++){
        b=b+i;             
    }
Добавлено через 1 минуту
Цитата Сообщение от silentnuke Посмотреть сообщение
C++
1
2
3
4
5
6
7
int b=n;
    if(n<0)
        while(n++)
            b+=n;
    else if(n>0)
        while(n--)
            b+=n;
Странный алгоритм...
0
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:09 #17
Цитата Сообщение от Preveter Посмотреть сообщение
Странный алгоритм...
эм, что странного?)
более экономный чем ваш.)
отработает быстрее)
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 22:23 #18
Зачем быдлокодить-то
C++
1
2
3
4
5
6
#include <fstream>
int main(){
    int n;
    std:: fstream("input.txt") >> n;
    std:: ofstream("output.txt") <<   (1 + abs(n)) * n / 2  + (n <= 0);
}
1
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:31 #19
Цитата Сообщение от diagon Посмотреть сообщение
Зачем быдлокодить-то
C++
1
2
3
4
5
6
#include <fstream>
int main(){
    int n;
    std:: fstream("input.txt") >> n;
    std:: ofstream("output.txt") <<   (1 + abs(n)) * n / 2  + (n <= 0);
}
введи -5, получишь ответ -14,
и для 0, выдаст 1.
зачем там
C++
1
+ (n <= 0)
оно то как раз и портит ответ.

а то да, согласен, куда лучше)
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 22:36 #20
Цитата Сообщение от silentnuke Посмотреть сообщение
зачем там
+ (n <= 0)
оно то как раз и портит для отрицательных чисел.
Затем, что единичка тоже учитывается. Т.е. при 0 ответ будет 1, при - 1 = 0 и тд
И вообще...
http://********/index.asp?main=bstatus&id_t=2
Вряд ли с неправильным решением я бы пробрался на 11 место
0
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:41 #21
Цитата Сообщение от diagon Посмотреть сообщение
Затем, что единичка тоже учитывается. Т.е. при 0 ответ будет 1, при - 1 = 0 и тд
И вообще...
http://********/index.asp?main=bstatus&id_t=2
Вряд ли с неправильным решением я бы пробрался на 11 место
хм, скинул ради интереса оба вариант на тест, ибо засчитались, хД)
0
Сыроежка
Заблокирован
13.08.2011, 03:58 #22
Цитата Сообщение от silentnuke Посмотреть сообщение
введи -5, получишь ответ -14,
и для 0, выдаст 1.
зачем там
C++
1
+ (n <= 0)
оно то как раз и портит ответ.

а то да, согласен, куда лучше)
Все, что вам требуется, это объявить n как unsigned int, и не мучаться!
0
Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
13.08.2011, 07:50  [ТС] #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <fstream>
using namespace std;
int main() {
     int n;
     int i;
      ifstream in( "input.txt");      
      if ( !in) return 1;           
      in >>n ;
      int b=0;
      if(n==0)
      {
              b=1;
              }
              else
              {
                  if (n<0)
                  {
                          for(i=1;i>=n;i--)
                          {
                          b=b+i;
                          }
                          
                          }
                          else{
      for(i=1;i<=n;i++)
      {
        b=b+i;             
                      }
                      }
                      }
      in.close();                       
      ofstream out( "output.txt");      
      if ( !out) return 1;              
      out << b;                        
      out.close();                      
      return 0;
}
0
silentnuke
13.08.2011, 15:11
  #24

Не по теме:

ужс, решение от diagon куда элегантнее было)

0
Dani
13.08.2011, 22:47
  #25

Не по теме:


Цитата Сообщение от silentnuke Посмотреть сообщение
Не по теме:
ужс, решение от diagon куда элегантнее было)
У него там сумма членов арифметической прогрессии.

0
silentnuke
13.08.2011, 23:20
  #26

Не по теме:

Цитата Сообщение от Dani Посмотреть сообщение

Не по теме:



У него там сумма членов арифметической прогрессии.

у него там решение поставленной задачи.

0
gretham
19 / 19 / 1
Регистрация: 12.08.2011
Сообщений: 59
13.08.2011, 23:39 #27
Цитата Сообщение от silentnuke Посмотреть сообщение
и для положительных, и для отрицтельных

C++
1
2
3
4
5
6
7
    int b=n;
    if(n<0)
        while(n++)
            b+=n;
    else if(n>0)
        while(n--)
            b+=n;
Насколько я понял тут не n++/n-- а ++n/--n надо...

Или b = n убрать...

Добавлено через 2 минуты
Цитата Сообщение от Ferk Посмотреть сообщение
всем спасибо)) сдал вот так:

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
#include <fstream>
using namespace std;
int main() {
     int n;
     int i;
      ifstream in( "input.txt");      
      if ( !in) return 1;           
      in >>n ;
      int b=0;
      if(n==0)
      {
              b=1;
              }
              else
              {
                  if (n<0)
                  {
                          for(i=1;i>=n;i--)
                          {
                          b=b+i;
                          }
                          
                          }
                          else{
      for(i=1;i<=n;i++)
      {
        b=b+i;             
                      }
                      }
                      }
      in.close();                       
      ofstream out( "output.txt");      
      if ( !out) return 1;              
      out << b;                        
      out.close();                      
      return 0;
}
if(n==0)
{
b=1;

Как же так?)))
0
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
13.08.2011, 23:41 #28
Цитата Сообщение от gretham Посмотреть сообщение
Насколько я понял тут не n++/n-- а ++n/--n надо...

Или b = n убрать...
да ну? с чего бы это?
0
gretham
19 / 19 / 1
Регистрация: 12.08.2011
Сообщений: 59
13.08.2011, 23:55 #29
Цитата Сообщение от silentnuke Посмотреть сообщение
да ну? с чего бы это?
Извиняюсь, ошибся

Хотя разницы абсолютно никакой)
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.08.2011, 08:56 #30
Цитата Сообщение от Dani Посмотреть сообщение
У него там сумма членов арифметической прогрессии.
Так это и есть арифметическая прогрессия.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2011, 08:56
Привет! Вот еще темы с ответами:

Найдите такие натуральные числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7 - C++
Помогите пожалуйста с задачей. Найдите натуральные числа такие, чтобы сумма их цифр следующего за ним числа делилась на 7. (язык С++)...

Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7 - C++
задание:&quot;найдите простые числа такие, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7&quot; помогите...

Определить количество цифр в числе n и сумму всех его цифр - C++
Дано натуральное n , определить количество цифр в числе n и сумму всех его цифр. Значение n ввести с клавиатуры. Добавлено через...

Определить сколько цифр в заданном числе, найти сумму цифр, и последнюю цифру - C++
дано натуральное число n (n&lt;10000). определить сколько цифр, найти сумму цифр, и последнюю цифру. Не могу сообразить где косяк вышел ...


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

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

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