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

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

Войти
Регистрация
Восстановить пароль
 
 
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
#1

нужен тип целого числа для числа 19!= 121 645 100 408 832 000 - C++

18.01.2011, 20:51. Просмотров 852. Ответов 17
Метки нет (Все метки)

Нужно посчитать сумму цифр целого положительного числа.

C++
1
2
3
4
5
6
7
8
9
10
double summacifr(double chislo)
{
    double summa=0;
    while(chislo)
    {
        summa+=chislo%10;
        chislo/=10;
    }
    return summa;
}
Дело в том, что для операции остатка нужно целое число, а такое число в int и unsigned long не вмещается.

Хотя программа работает с таким числом. Почему? Разве в unsigned long вмещается не больше 4294967295?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 20:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужен тип целого числа для числа 19!= 121 645 100 408 832 000 (C++):

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

Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 - C++
Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100. Число n вводит пользователь. Последний...

Используя арифметические операции, определить и вывести сумму цифр трехзначного целого числа k (100<=k<=255) - C++
1)осуществить: - проверку корректности по типу вводимых значений; - проверку диапазонов вводимых значений. -Используя...

Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -> 3153) - C++
Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -&gt; 3153) на DevC++. Заранее спасибо

Конструирование значения целого числа или числа с плавающей точкой по его дампу - C++
Как сконструировать значения целого числа(char, short int, long int) или числа с плавающей точкой(float,double) по его дампу(bin,oct,hex)??

Найти порядок n для целого числа k - C++
2. Найти порядок n для целого числа k &lt; {2}^{n} при помощи операций сдвига.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
deadlock
375 / 354 / 8
Регистрация: 14.12.2010
Сообщений: 1,265
18.01.2011, 20:58 #2
помещай его в массив char, потом при суммировании преобразуешь каждый символ в число и суммируешь

char chislo[]="121645100408832000";
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
18.01.2011, 21:05  [ТС] #3
офигеть, а более простого способа нет?)))
deadlock
375 / 354 / 8
Регистрация: 14.12.2010
Сообщений: 1,265
18.01.2011, 21:05 #4
функция конвертер:
C++
1
2
3
4
int CharToInt(char C)
{
   if (C>=48&&C<=57) return C-48;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
18.01.2011, 21:08 #5
deadlock, Или так
C++
1
2
3
4
int char_to_int(char ch)
{
    return ch - '0';
}
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
18.01.2011, 21:09 #6
Цитата Сообщение от deadlock Посмотреть сообщение
помещай его в массив char
да оно и в unsigned long long (он же uint64_t) поместится...
deadlock
375 / 354 / 8
Регистрация: 14.12.2010
Сообщений: 1,265
18.01.2011, 21:10 #7
Цитата Сообщение от asics Посмотреть сообщение
deadlock, Или так
C++
1
2
3
4
int char_to_int(char ch)
{
    return ch - '0';
}
а проверить, что это цифра не мешает
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
18.01.2011, 21:11  [ТС] #8
А такой тип unsigned long long есть?
Проверил, все таки с int не работает правильно.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
18.01.2011, 21:13 #9
Цитата Сообщение от deadlock Посмотреть сообщение
а проверить, что это цифра не мешает
Так програма по дефолту подразумивает роботу з числами, так-что проверка никчему.
deadlock
375 / 354 / 8
Регистрация: 14.12.2010
Сообщений: 1,265
18.01.2011, 21:14 #10
Цитата Сообщение от Chelioss Посмотреть сообщение
А такой тип unsigned long long есть?
Проверил, все таки с int не работает правильно.
размер int 4 байта, а unsigned long long 8 байт, то есть можно адресовать число максимум 18446744073709551615
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
18.01.2011, 21:15  [ТС] #11
Такой тип есть, спасибо.
deadlock
375 / 354 / 8
Регистрация: 14.12.2010
Сообщений: 1,265
18.01.2011, 21:15 #12
Цитата Сообщение от asics Посмотреть сообщение
Так програма по дефолту подразумивает роботу з числами, так-что проверка никчему.
думается, что число будут с клавиатуры вводить, а не в тексте программы, поэтому нужно
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
18.01.2011, 21:16  [ТС] #13
В ВУЗе ваши способы не прокатят, но все равно спасибо)
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
18.01.2011, 21:17 #14
deadlock, В таком случае, проверка нужна не в функции-конвертере, а сразу после ввода числа.Потому что, какой резон работать не понятно с чем.
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.01.2011, 21:37 #15
Chelioss, посмотрите Найти факториал числа
Здесь вы можете подсчитать факториалы больших чисел, а также написать небольшой метод для решения вашей задачи. Т.к. в решении значение факториала хранится в виде массива, значение каждого элемента которого не превышает 999 - вы можете обойтись обычным интом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 21:37
Привет! Вот еще темы с ответами:

Для заданного целого числа n вычислить - C++
Для заданного целого числа n вычислить \sum_{i=1}^{n}\frac{100}{{i}^{2}}+3*i Помогите с програмой пожалуй, зарание спасибо

Найти квадрат (для целого) и куб (для вещественного числа) - C++
ПОМОГИТЕ ПОЖАЛУЙСТА РАЗОБРАТЬСЯ С КОДОМ, ТОЧНЕЕ С ФУНКЦИЕЙ,КОТОРАЯ ЭТО ВОЗВЕДЕНИЕ В КВАДРАТ ИЛИ КУБ ОСУЩЕСТВЛЯЕТ. Если мы вводим целое...

Составьте программу, которая для целого числа k (от 1 до 99) - C++
Помогите PLEASE. Составьте программу, которая для целого числа k (от 1 до 99), введенного вами, напечатает фразу «Мне k лет», при этом в...

Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K - C++
Помогите выполнить задание. Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K (цифры в...


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

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

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