Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 03.02.2011, 22:43   #151
Obey-Kun
Линуксоид
Профессионал
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Адрес: Москва
Сообщений: 1,403
Репутация: 165

icq: 323216
По умолчанию

формулу не я вывел, а форумчанин dikiy с ЛОРа, вот объяснение от gunja там же
Цитата:
в каждой позиции может быть одно из 10 символов. 0..9

всего значит в N позициях может быть 10^N вариантов.

и мы знаем, что в позиции может быть или 1 или оставшиеся 9 символов.

размещая в N ячейках какой-либо из 9 символов, у нас будет 9^N комбинаций. значит разница между одним набором и другим такая, что в оставшихся вариантах будет присутствовать 10-ый символ.

10^N - 9^N в результате. чтобы не перегружать машины, можно вычислять экспоненциально (хотя толку от этого мало).

exp( n ln(10)) = exp ( ln (10^N)) = 10 ^N.
__________________
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума   Ответить с цитированием
Старый 03.02.2011, 22:52   #152
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
Репутация: 14
По умолчанию

получается, что я могу вместо своего буффера где сохронены цыфры 10^n,вставить формулу 10^n - 9^n и это будет не подгонка а алгоритм))

bommer,хороший ты человек))))))))))))))

Последний раз редактировалось Акоб; 03.02.2011 в 23:02.
Акоб вне форума   Ответить с цитированием
Старый 03.02.2011, 23:10   #153
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
Репутация: 14
По умолчанию

Код:
#include<iostream.h>

int stepen10(int);
int stepen9(int);

int main()
{
	
	int N,j,h = 0,n = 0;
	cin>>N;

	j = N;
	
	while(j >= 1)
	{
		j = j / 10;
		h++;
	}


	j = N;
	j = j / stepen10(h - 1);

	if(h == 1)
	{
		n = 1;
		cout<<n<<endl;
		return 0;
	}
	
	while(h != 0) 
	{
		if(j == 1)
		{
			if(N % stepen10(h - 1) == 0)
			{
				n = n + stepen10(h - 1) - stepen9(h - 1) + 1;
				cout<<n<<endl;
				return 0;
			}
				
			n = n + (N % stepen10(h - 1)) + stepen9(h - 1) - stepen10(h - 2) + 1;
			cout<<n<<endl;
			return 0;
		}
		else 
		{
			if( j != 0 )
			{
				n = n + (j - 1) * (stepen10(h - 1) - stepen9(h - 1)) + stepen10(h - 1);
			}
		}

		N = N % stepen10(h - 1);
		j = N;
		h--;

		j = j / stepen10(h - 1);
	}

	cout<<n<<endl;

	return 0;
}

int stepen10( int x )
{
	int s = 1;
	for(; x >= 1; x--)
		{
			s = s * 10;
		}
	return s;
}


int stepen9( int x )
{
	int s = 1;
	for(; x >= 1; x--)
		{
			s = s * 9;
		}
	return s;
}
вот и все))
какие будут идеи на счет задачи где нужно найти количество всех едениц?

Последний раз редактировалось Акоб; 03.02.2011 в 23:16.
Акоб вне форума   Ответить с цитированием
Старый 03.02.2011, 23:50   #154
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
Репутация: 11
По умолчанию

Что за форум ЛОР?
boomeer вне форума   Ответить с цитированием
Старый 04.02.2011, 02:27   #155
Obey-Kun
Линуксоид
Профессионал
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Адрес: Москва
Сообщений: 1,403
Репутация: 165

icq: 323216
По умолчанию

linux.org.ru же
__________________
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчитать количество слов, в которые входит символ "е" Zhasik Паскаль 3 27.12.2010 11:29
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 17:51
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04


01:09.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.