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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
4ance
1 / 1 / 0
Регистрация: 02.11.2010
Сообщений: 78
#1

Промежуток {000000 - 999999} - C++

20.11.2010, 10:23. Просмотров 1482. Ответов 7
Метки нет (Все метки)

Засел на последней задаче по теме
Необходимо посчитать кол-во счастливых билетов и найти их процентную долю от общество числа билетов в промежутке от {000000 до 999999}.
Кол-во с процентной долей - не проблема, но промежуток не даёт мне перейти к следующей задаче Тип int неприменим(хотя тема - задачи с целыми числами), а операции со строками и массивами не так просты
Чтобы посчитать (000+000) следует закидывать числа, как строки в элемент массива char, а потом как-то выдирать оттуда по 1му элементу и переводим его в целый тип, чтобы посчитать сумму?
В общем, не знаю, как её решать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 10:23     Промежуток {000000 - 999999}
Посмотрите здесь:

Как присвоить переменной рандомное число в диапазоне 000000 до 999999 - C++
Как присвоить переменной предположим А рандомное число в диапазоне 000000 до 999999 , не 0 - 999999 а 000000-999999

Вычислить промежуток времени - C++
линейные алгоритмы Заданы моменты начала и конца некоторого периода времени в часах, минутах и секундах. Найти продолжительность этого...

Определить промежуток времени - C++
Добрый вечер, уважаемые форумчане. Никак не могу сдвинуться с места со свое задачей: "Известные данные о статьях.Каждая статья...

Перевод аргумента в промежуток - C++
Привет всем. Написал программу, которая сравнивает значения сумм рядов со стандартными функциями cos(x) и sin(x). Вот код: #include...

Скопировать промежуток в TCHAR - C++
Всем привет. Делаю программу в WinApi на Visual Studio 10. Такой вопрос. Если я объявляю строку TCHAR* buf= new TCHAR; И TCHAR* buf2. То...

Почему 1 входит в промежуток? - C++
#include <stdio.h> #include <locale> int main() { setlocale(LC_ALL,".1251"); float x, y; printf ("Введите x, y\n"); scanf...

Промежуток рандомных чисел - C++
Здравствуйте. Подскажите пожалуйсто где я тут напортачил. Нужно вывести 10 рандомных чисел в промежудке от 12 до 19, а у меня програма...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.11.2010, 10:46     Промежуток {000000 - 999999} #2
4ance, У Вас не получается найти кол-во счастливых билетов в промежутке от {000000 до 999999} с использованием int?
4ance
1 / 1 / 0
Регистрация: 02.11.2010
Сообщений: 78
20.11.2010, 11:25  [ТС]     Промежуток {000000 - 999999} #3
Цитата Сообщение от valeriikozlov Посмотреть сообщение
4ance, У Вас не получается найти кол-во счастливых билетов в промежутке от {000000 до 999999} с использованием int?
Нету числа в инте 000000, он 0 просто возьмёт. Так же как и 000001 - 1, 000010 - 10 и тд. Соответственно, до 100000 числа я буду получать неверный результат.
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 243
20.11.2010, 11:33     Промежуток {000000 - 999999} #4
На консоли?
4ance
1 / 1 / 0
Регистрация: 02.11.2010
Сообщений: 78
20.11.2010, 11:34  [ТС]     Промежуток {000000 - 999999} #5
Цитата Сообщение от Vergil Посмотреть сообщение
На консоли?
Не совсем понял. На пк) Среда - VS2008
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 243
20.11.2010, 11:38     Промежуток {000000 - 999999} #6
В смысле Console Application или VCL forms Application?
Или черный экранчик или как обычное приложение?
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.11.2010, 11:55     Промежуток {000000 - 999999} #7
Предлагаю рассмотреть эту задачу так:
сумма цифр слева у билетов в промежутке от {000000 до 999999} будет находится в диапазоне значений от 0 до 27. Создаем int mas[28]. Обнуляем его элементы. Затем перебираем все числа от 0 до 999. У каждого числа считаем сумму цифр и увеличиваем на 1 элемент с таким индексом массива mas[]. Например очередное число 123, сумма цифр 6, значит mas[6]++ .

После этого прохода делаем подсчет всех счастливых билетиков так:
int sum=0;
for(int i=0; i<28; i++)
sum+=mas[i]*mas[i];
все..
Поясню почему. Например с суммой в левой части равной 2 будут такие билетики: 002 020 200 011 101 110, т.е. mas[2] получится равным 6.
Кол-во билетиков с суммами в обоих сторонах равной 2 будет 6*6=36.
Можете проверить:
002002
002020
002200
002011
002101
002110
далее в левую часть ставим
020002 и тоже самое дальше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 12:16     Промежуток {000000 - 999999}
Еще ссылки по теме:

Промежуток между написанием строчек - C++
Я работаю через программу dev c++ и недавно я столкнулся с проблемой при написании следующего: cout&lt;&lt;rus(&quot; Тут текст1&quot;)&lt;&lt;endl; ...

Таймер - получить промежуток времени - C++
есть форма с таймером и 2 кнопками :&quot;старт&quot;и &quot;стоп&quot; ну и тест. при нажатиии на старт запускается таймер и пользователь начинает отвечать...

Промежуток времени, включающий полночь - C++
Вечер добрый, Задача такая : Start = 19:52:35; h:m:s Stop = 22:15:15; while(1) { now = rtc.now(); if(now&lt;Stop &amp;&amp; now...

Бесконечный цикл с повторением через промежуток времени - C++
как создать бесконечный цикл с повторением через промежуток времени? вот цикл, который надо повторять: #include&lt;iostream&gt; ...

Перелистывание картинок через определённый промежуток времени - C++
К примеру, мне нужно что-бы при запуске конвертировании программы, 5 картинок менялись собой местами беспрерывно.Можно это сделать в C++...


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

Или воспользуйтесь поиском по форуму:
4ance
1 / 1 / 0
Регистрация: 02.11.2010
Сообщений: 78
20.11.2010, 12:16  [ТС]     Промежуток {000000 - 999999} #8
Цитата Сообщение от Vergil Посмотреть сообщение
В смысле Console Application или VCL forms Application?
Или черный экранчик или как обычное приложение?
Console Application. В VCL forms Application будет по другому?
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Предлагаю рассмотреть эту задачу так:
сумма цифр слева у билетов в промежутке от {000000 до 999999} будет находится в диапазоне значений от 0 до 27. Создаем int mas[28]. Обнуляем его элементы. Затем перебираем все числа от 0 до 999. У каждого числа считаем сумму цифр и увеличиваем на 1 элемент с таким индексом массива mas[]. Например очередное число 123, сумма цифр 6, значит mas[6]++ .

После этого прохода делаем подсчет всех счастливых билетиков так:
int sum=0;
for(int i=0; i<28; i++)
sum+=mas[i]*mas[i];
все..
Поясню почему. Например с суммой в левой части равной 2 будут такие билетики: 002 020 200 011 101 110, т.е. mas[2] получится равным 6.
Кол-во билетиков с суммами в обоих сторонах равной 2 будет 6*6=36.
Можете проверить:
002002
002020
002200
002011
002101
002110
далее в левую часть ставим
020002 и тоже самое дальше.
Одолжите ваш мозг?
Yandex
Объявления
20.11.2010, 12:16     Промежуток {000000 - 999999}
Ответ Создать тему
Опции темы

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