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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Ferk
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 20:22     сумма цифр в числе #1
Помогите пожалуйста.. не могу понять почему он не выводит результат?

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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2011, 20:22     сумма цифр в числе
Посмотрите здесь:

C++ сумма цифр в данном числе
Напишите программу, выводящую на экран количество цифр в этом числе и сумму этих цифр C++
Найдите такие натуральные числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7 C++
C++ Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7
C++ Определить количество цифр в числе n и сумму всех его цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LosAngeles
Заблокирован
12.08.2011, 20:26     сумма цифр в числе #2
Цитата Сообщение от Ferk Посмотреть сообщение
int a[n];
только если с99 поддерживает твой компилятор, то есть vsvc не примет такой код. И ещё я сомневаюсь что данная прога подсчитывает сумму цифр в числе
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 20:29     сумма цифр в числе #3
Цитата Сообщение от 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.а где заполнение самого массива, оО?
Ferk
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 20:34  [ТС]     сумма цифр в числе #4
блин я олень! сори)) все понил)) пить меньше надо))

Добавлено через 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
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 20:38     сумма цифр в числе #5
оО, и с каких пор, это называется сумой цифр в числе?
LosAngeles
Заблокирован
12.08.2011, 20:38     сумма цифр в числе #6
это сумма чисел от 0 до n, а не сумма цифр в числе
Ferk
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 20:39  [ТС]     сумма цифр в числе #7
вроде работает а ******** не принимает wrong answer пишет
LosAngeles
Заблокирован
12.08.2011, 20:42     сумма цифр в числе #8
ну естественно, ты наверно задание и решение перепутал, это явно не сумма цифр в числе)
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 20:43     сумма цифр в числе #9
Цитата Сообщение от Ferk Посмотреть сообщение
вроде работает а ******** не принимает wrong answer пишет
и правильно делает.
подсунте скажем 12 туда. каков ответ должен быть? правильно 3, а у вас какой выходит 78.
а почему? а потому что вы считает не сумму цифр числа, а просто прибавляйте все числа с диапазона 0-12
Ferk
 Аватар для Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
12.08.2011, 21:12  [ТС]     сумма цифр в числе #10
блин сори я не так задачу назвал))

http://********/?main=task&id_task=2


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

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

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

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

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

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

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

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;
}
Preveter
 Аватар для 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;
Странный алгоритм...
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
12.08.2011, 22:09     сумма цифр в числе #17
Цитата Сообщение от Preveter Посмотреть сообщение
Странный алгоритм...
эм, что странного?)
более экономный чем ваш.)
отработает быстрее)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 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);
}
silentnuke
Android Programmer
137 / 138 / 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)
оно то как раз и портит ответ.

а то да, согласен, куда лучше)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2011, 22:36     сумма цифр в числе
Еще ссылки по теме:

Определить для числа: является ли сумма его цифр двузначным числом; больше ли сумма его цифр числа "а" C++
Сумма цифр в числе C++
Рекурсия: количество цифр в числе, сумма цифр и реверс числа C++

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 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 место
Yandex
Объявления
12.08.2011, 22:36     сумма цифр в числе
Ответ Создать тему
Опции темы

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