Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105

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

12.08.2011, 20:22. Показов 2998. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.08.2011, 20:22
Ответы с готовыми решениями:

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

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

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

29
Заблокирован
12.08.2011, 20:26
Цитата Сообщение от Ferk Посмотреть сообщение
int a[n];
только если с99 поддерживает твой компилятор, то есть vsvc не примет такой код. И ещё я сомневаюсь что данная прога подсчитывает сумму цифр в числе
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 20:29
Цитата Сообщение от Ferk Посмотреть сообщение
Помогите пожалуйста.. не могу понять почему он не выводит результат?

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;
}
C++
1
 int a[n];
1.для создание статического массива, n должно быть константой.
2.а где заполнение самого массива, оО?
0
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 20:34  [ТС]
блин я олень! сори)) все понил)) пить меньше надо))

Добавлено через 34 секунды
там вообще массив не нужен))

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <fstream>
using namespace std;
int main() {
      int n;
      int i;
      ifstream in( "input.txt");      
      if ( !in) return 1;           
      in >>n ;
      int b=0;
      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;
}
вот так XD
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 20:38
оО, и с каких пор, это называется сумой цифр в числе?
0
Заблокирован
12.08.2011, 20:38
это сумма чисел от 0 до n, а не сумма цифр в числе
0
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 20:39  [ТС]
вроде работает а acmp.ru не принимает wrong answer пишет
0
Заблокирован
12.08.2011, 20:42
ну естественно, ты наверно задание и решение перепутал, это явно не сумма цифр в числе)
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 20:43
Цитата Сообщение от Ferk Посмотреть сообщение
вроде работает а acmp.ru не принимает wrong answer пишет
и правильно делает.
подсунте скажем 12 туда. каков ответ должен быть? правильно 3, а у вас какой выходит 78.
а почему? а потому что вы считает не сумму цифр числа, а просто прибавляйте все числа с диапазона 0-12
0
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 21:12  [ТС]
блин сори я не так задачу назвал))

http://acmp.ru/?main=task&id_task=2


сумма от 1 до n типо...

на отрицательные числа у меня не работает...
0
 Аватар для Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
12.08.2011, 21:32
Задачник какой-то напряжный...)

уж лучше на http://www.e-olimp.com.ua/ решай
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 21:33
Цитата Сообщение от Алексaндр Посмотреть сообщение
Задачник какой-то напряжный...)

уж лучше на http://www.e-olimp.com.ua/ решай
Да ну, еще хуже =)
2ТС: посмотрите разбор, там формула, просто перебор всех чисел не пройдет.
1
 Аватар для Preveter
9 / 9 / 2
Регистрация: 11.08.2011
Сообщений: 66
12.08.2011, 21:36
Цитата Сообщение от Ferk Посмотреть сообщение
на отрицательные числа у меня не работает...
А ты делай проверку:

если n>=1, то тогда как раньше,
а если n<1, то цикл в другую сторону:
C++
1
2
3
for(i=1;i>=n;i--){
    b=b+i;             
}
1
 Аватар для Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
12.08.2011, 21:40
Preveter,
условие изменить :

C++
1
for(i=-1;i>=n;i--)
И если n>0, то идти

C++
1
for(i=n;i>=1;i--)
Ноль ведь можно и не добавлять. Так на 1 шаг меньше и время экономим =)
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:02
и для положительных, и для отрицтельных

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
using namespace std;
int main() {
    int n;
    ifstream in( "input.txt");      
    if ( !in) return 1;           
    in >>n;
    in.close();
    int b=n;
    if(n<0)
        while(n++)
            b+=n;
    else if(n>0)
        while(n--)
            b+=n;
    
    ofstream out( "output.txt");      
    if ( !out) return 1;              
    out << b;                        
    out.close();                      
    return 0;
}
0
 Аватар для Preveter
9 / 9 / 2
Регистрация: 11.08.2011
Сообщений: 66
12.08.2011, 22:05
Цитата Сообщение от Алекс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
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:09
Цитата Сообщение от Preveter Посмотреть сообщение
Странный алгоритм...
эм, что странного?)
более экономный чем ваш.)
отработает быстрее)
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 22:23
Зачем быдлокодить-то
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
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:31
Цитата Сообщение от 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
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 22:36
Цитата Сообщение от silentnuke Посмотреть сообщение
зачем там
+ (n <= 0)
оно то как раз и портит для отрицательных чисел.
Затем, что единичка тоже учитывается. Т.е. при 0 ответ будет 1, при - 1 = 0 и тд
И вообще...
http://acmp.ru/index.asp?main=bstatus&id_t=2
Вряд ли с неправильным решением я бы пробрался на 11 место
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2011, 22:36
Помогаю со студенческими работами здесь

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

Сумма половины цифр в числе
Дано натуральное число, требуется найти сумму первой половины цифр числа. Если число содержит нечетное количество цифр, требуется найти...

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

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

Выяснить в каком числе сумма цифр больше
1) Даны два натуральных числа. Выяснить, в каком из них сумма цифр больше. (Определить функцию для расчета суммы цифр натурального числа.)


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru