Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2010, 21:06   #1
armref
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 10
По умолчанию запись в массиве

Нужно заполнить массив. Вводится n. В зависимости от n массив заполняется так : 1;12;123.....1234567890. N кол-во элементов в массиве. Не прошу вместо меня написать, просто подскажите алгоритм
armref вне форума Ответить с цитированием
Старый 03.01.2010, 21:31   #2
UnChanter
Пользователь
 
Аватар для UnChanter
 
Регистрация: 14.12.2008
Сообщений: 65
По умолчанию

берёшь остаток от делений на предыдущий элемент, следующий элемент равен 10 * предыдущий + ( остаток от деления + 1)
ну... и предусмотреть когда остаток от деления =9
UnChanter вне форума Ответить с цитированием
Старый 03.01.2010, 21:42   #3
armref
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 10
По умолчанию

спасибо
armref вне форума Ответить с цитированием
Старый 03.01.2010, 21:57   #4
armref
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 10
По умолчанию

Код:
# include <iostream>
using namespace std;
int main ()
{
	int n,i,j;
	cin>>n;
	int a[100];
	if (n=1)
		a[1]=1;
	if(n=2)
		a[1]=1;
		a[2]=12;
	if (n>2)
	{
		a[1]=1;
		a[2]=12;
		for( i=3;i<n;i++)
		{
			a[i]=(a[i-1]/a[i-2])+(10*a[i-1])+1;
		}
	}
	for(i=0;i<n;i++)
		cout<<a[i];
	return 0;
}

а что тут не так? не понимаю
armref вне форума Ответить с цитированием
Старый 03.01.2010, 22:42   #5
UnChanter
Пользователь
 
Аватар для UnChanter
 
Регистрация: 14.12.2008
Сообщений: 65
По умолчанию

Код:
a[i]=(a[i-1]*10)+(i%10);
UnChanter вне форума Ответить с цитированием
Старый 03.01.2010, 22:54   #6
armref
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 10
По умолчанию

Код:
# include <iostream>
using namespace std;
int main ()
{
	int n,i;
	cin>>n;
	int a[100];
	if (n=1)
		a[0]=1;
	if(n=2)
	{
		a[0]=1;
		a[1]=12;
	}
	else
	{
		a[0]=1;
		a[1]=12;
		for( i=3;i<n;i++)
		{
			a[i]=(a[i-1]*10)+(i%10);
		}
	}
	for(i=0;i<n;i++)
		cout<<a[i]<<endl;
	return 0;
}
исправила, но почему-то какое бы n я не вводила ввыводит только 1 12
armref вне форума Ответить с цитированием
Старый 03.01.2010, 23:07   #7
UnChanter
Пользователь
 
Аватар для UnChanter
 
Регистрация: 14.12.2008
Сообщений: 65
По умолчанию

нету сейчас на компьютере в чём даже и проверить, но по-моему надо
a[i]=(a[i-2]*10)+(i%10);
UnChanter вне форума Ответить с цитированием
Старый 03.01.2010, 23:10   #8
armref
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 10
По умолчанию

нет, все равно только 2 первых элемента выводит
armref вне форума Ответить с цитированием
Старый 04.01.2010, 06:05   #9
UnChanter
Пользователь
 
Аватар для UnChanter
 
Регистрация: 14.12.2008
Сообщений: 65
По умолчанию

Код:
var
  a:array[0..100] of integer;
  i,n:integer;
begin
 readln(n);
 a[0]:=1;
 for i:=1 to n-1 do
  a[i]:=a[i-1]*10+(i+1) mod 10; 
 for i:=0 to n-1 do writeln(a[i]);
end.
Вот это работает. Синтаксиса С не знаю, но попробую переделать
Код:
# include <iostream>
using namespace std;
int main ()
{
	int n,i;
	cin>>n;
	int a[100];
	a[0] = 1;
            for (i=1;i<=n-1;i++) a[i]=a[i-1]*10+(i+1)%10;
	for(i=0;i<=n-1;i++)
		cout<<a[i]<<endl;
	return 0;
}
UnChanter вне форума Ответить с цитированием
Старый 04.01.2010, 16:52   #10
armref
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 10
По умолчанию

большое спасибо
armref вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цитаты в массиве Insainer Microsoft Office Excel 4 24.08.2009 16:31
Поиск в массиве ADSoft PHP 1 07.08.2009 11:17
Поиск в массиве Paul_AG Общие вопросы C/C++ 9 03.06.2009 01:29
Цикл в массиве Шура Помощь студентам 2 27.11.2008 10:39
Снова о массиве Constellation Общие вопросы Delphi 2 09.02.2008 20:42