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

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

Войти
Регистрация
Восстановить пароль
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
#1

Раскладываем на цифры - C++

26.10.2012, 19:54. Просмотров 441. Ответов 8
Метки нет (Все метки)

Доброго времени суток.
Задача:
Дано натуральное n. Верно ли, что равны суммы четных и нечетных цифр?
Но меня мучает вопрос, что бы раскладывать число, нужно обязательно знать количество знаков? (без ввода в массив). Никак не разберусь со всеми тонкостями этого процесса. Помогите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 19:54     Раскладываем на цифры
Посмотрите здесь:

Массив строк в с++. Вывести строки, в которых есть цифры. В каждой строке удалить все цифры - C++
Помогите пожалуйста с задачей ! срочно!! Необходимо написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести...

Дано 4 цифры, напечатать цифры в порядке возрастания - C++
в программе ввел 4 числа,она должна распологать цифры в порядке возрастания,без всяких массивов и циклов void lowtohigh(int a, int...

Заменить слова обозначающие цифры на цифры (от 1 до 9) - C++
Дорогие друзья, помогите! Нужно написать программу, заменяющую, в выбранном мной текстовом файле, слова, обозначающие цифры, на сами цифры...

Раскладываем цифры и считаем, нужен макрос - VBA
Здравствуйте, мне нужен такой макрос, выбрав столбец раскладывает цифры, как вариант 1-5 от одного до пяти как 1 2 3 4 5 в B, С, D, E и т....

Раскладываем логарифм - Математический анализ
ln \frac{2x+1}{1-x} ln(2+x)-ln(1-x)=ln(2(1+\frac{x}{2})-ln(1+(-x))=ln2+ln(1+\frac{x}{2})-ln(1+(-x)) А дальше в формулу разложения...

Раскладываем Солитер программой - Алгоритмы
Решил написать программу для перебора Солитера. Делаем перебором. 1. Представление карт. Карты представляются одним байтом. В...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.10.2012, 20:06     Раскладываем на цифры #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main(void) {
    
    int N, t1=0, t2=0;
    cin>>N;
    while(N)
    {
        if((N%10)%2==0)
            t1+=N%10;
        else
            t2+=N%10;
        N/=10;
    }
    if(t1==t2)
        cout<<"YES"<<endl;
    else
        cout<<"NO"<<endl;
    return 0;
}
De_N
28 / 26 / 9
Регистрация: 15.10.2012
Сообщений: 60
26.10.2012, 20:13     Раскладываем на цифры #3
Как альтернатива, вот небольшой пример с библиотекой stdio.
Сперва число (int) переводится в строку (string).
Затем в цикле происходит обращение к каждому символу строки и его преобразование обратно в число.
В итоге программа выводит сумму всех цифр.
Думаю слегка модифицировав этот вариант можно вычислить суммы нужных разрядов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdio.h"
int a;  // Входное число
String s; // Строка для работы
int b;  // Сумма
 
main()
{
// Ввод данных (числа)
printf("a = ");
scanf("%d",&a);
 
s = IntToStr(a); // его перевод в строку
 
for (int i=1; i<=s.Length(); i++)
{
b = b + StrToInt(s[i]); // Посимвольное обращение и перевод обратно в int
}
 
printf("%d\n", b);
scanf("%d",&a);
}
Пример, конечно, далеко не идеальный. Но)
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.10.2012, 20:15     Раскладываем на цифры #4
De_N, Это даже не скомпилируется.
De_N
28 / 26 / 9
Регистрация: 15.10.2012
Сообщений: 60
26.10.2012, 20:24     Раскладываем на цифры #5
soon, осмелюсь опровергнуть ваше замечание.
Данный код успешно компилируется в среде C++Builder6.
Однако на счет "кривости" кода я ничего не говорю. Да, пожалуй яркий пример быдлокода.
Croessmah
Модератор
Эксперт CЭксперт С++
13059 / 7322 / 817
Регистрация: 27.09.2012
Сообщений: 18,074
Записей в блоге: 3
Завершенные тесты: 1
26.10.2012, 20:30     Раскладываем на цифры #6
Цитата Сообщение от De_N Посмотреть сообщение
осмелюсь опровергнуть ваше замечание.
g++ c:\cpp\main.cpp -o c:\cpp\main.exe
Process started >>>
c:\cpp\main.cpp:4:1: ошибка: «String» не является именем типа
c:\cpp\main.cpp: В функции «int main()»:
c:\cpp\main.cpp:13:1: ошибка: нет декларации «s» в этой области видимости
c:\cpp\main.cpp:13:15: ошибка: нет декларации «IntToStr» в этой области видимости
c:\cpp\main.cpp:17:22: ошибка: нет декларации «StrToInt» в этой области видимости
<<< Process finished.
================ READY ================
De_N
28 / 26 / 9
Регистрация: 15.10.2012
Сообщений: 60
26.10.2012, 20:34     Раскладываем на цифры #7
Хе-хе. Извиняюсь, упустил те несколько строк кода, которые среда генерирует самостоятельно)
Вы были правы.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.10.2012, 20:50     Раскладываем на цифры #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
 
unsigned long buf;
int Check(unsigned long a)
{
   return a < 10 ? a * (a & 1 ? -1 : 1) : (buf = a % 10) * (buf & 1 ? -1 : 1) + Check(a / 10);
}
 
int main()
{
   unsigned long a;
   std::cin >> a;
   std::cout << (Check(a) ? "not equal" : "equal");
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 21:03     Раскладываем на цифры
Еще ссылки по теме:

Раскладываем случайно шары по коробкам - Теория вероятностей
Есть 40 одинаковых шаров и 60 одинаковых коробок, раскладываем случайно шары по коробкам, какая вероятность, что будет как минимум один...

Сгруппировать в выходном файле вначале числа, начинающие с цифры 1, затем с цифры 2, 3, 4 и т.д., - Turbo Pascal
Здравствуйте, помогите мне пожалуйста с задачкой. Исходный текст содержит список целых десятичных чисел. Сгруппировать в выходном...

Есть цифры от n до 0, нужно сложить те цифры, которые являются Фибоначчи. - Turbo Pascal
есть цифры от n до 0 нужно сложить те цифры, которые являются Фибоначчи. Спасибо

Суммировать цифры в диапазоне ячеек. Буквы заменить на цифры, если таковые есть - VBA
Добрый день. Помогите кто может.(Excel) Есть диапазон ячеек, в котором есть и буквы и цифры. Надо суммировать только цифры и если есть...


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

Или воспользуйтесь поиском по форуму:
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
26.10.2012, 21:03     Раскладываем на цифры #9
Цитата Сообщение от sergey_viper Посмотреть сообщение
Дано натуральное n. Верно ли, что равны суммы четных и нечетных цифр?
Имеется ввиду что сама цифра четная или нечетная, или номер позиции, на которой она находится.
Если определяется по четности цифры то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
void sumDigit(unsigned int* sum1, unsigned int* sum2, unsigned int num) {
    if (num/10 == 0)
        (num%2 == 0) ? (*sum1 += num) : (*sum2 += num);
    else {
        ((num%10)%2 == 0) ? (*sum1 += (num%10)) : (*sum2 += (num%10));
        sumDigit(sum1, sum2, num/10);
    }
}
 
int main() {
    unsigned int s1 = 0;
    unsigned int s2 = 0;
    sumDigit(&s1, &s2, 1212);
    std::cout << s1 << " " << s2 << std::endl;
        (s1 == s2) ? std::cout << "equal" : std::cout << "not equal";
    std::cout << std::endl;
}
Yandex
Объявления
26.10.2012, 21:03     Раскладываем на цифры
Ответ Создать тему
Опции темы

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