Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Demiar
2 / 2 / 3
Регистрация: 02.11.2012
Сообщений: 86
1

Рассмотреть отрезки, идущих подряд членов последовательности, состоящие из полных квадратов. Получить наибольшую из длин рассматриваемых отрезков

13.01.2013, 07:53. Просмотров 799. Ответов 1
Метки нет (Все метки)

Даны натуральное число n, целые числа a_1 ,…,a_n. Рассмотреть отрезки идущих подряд членов данной последовательности, состоящие из полных квадратов. Получить наибольшую из длин рассматриваемых отрезков. Определить подпрограммы, позволяющие распознать полные квадраты. Вот я тут набросал код, Заранее спасибо

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 #include <stdlib.h>
 #include <locale>
 #include <math.h>
 void main()
 {
 setlocale(LC_ALL,"Russian");
 int *mas = NULL; 
 int i,c,f,x,r;
 int n = 0;
 double b;
 printf("Введите натуральное число n:\n");
 scanf("%d",&n);
 mas=(int*)malloc(sizeof(int)*n);
 printf("Введите целые числа:\n");
 c=0;
 for(i=0;i<n;i++)
 { 
 scanf("%d",&mas[i]);
 b=mas[i];
 x=sqrt(b);
 if (x*x==b) c++;
 
 }
 
 ....
 
 free(mas);
 system("pause");
 }
Добавлено через 17 часов 35 минут
аппп!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 07:53
Ответы с готовыми решениями:

Рассмотреть отрезки последовательности, состоящие из полных квадратов
Рассмотреть отрезки последовательности, состоящие из полных квадратов. получить наибольшую из длин...

Рассмотреть отрезки последовательности, которые состоят из полных квадратов
Задано натуральное n, целые числа a1,a2,...,an. Рассмотреть отрезки последовательности a1,a2,...,an...

Получить наибольшую из длин отрезков последовательности, удовлетворяющих заданному условию
Доброго времени суток) Пожалуйста, помогите с задачей. Задано натуральное n, целые числа...

Получить наибольшую из длин рассматриваемых отрезков последовательности
Даны натуральное число n, целые числа a1,...,an. Рассмотреть отрезки последовательности a1,...,an...

Получить наибольшую из длин рассматриваемых отрезков
Дано натуральные число n, целые числа a1,...an. Рассмотреть отрезки последовательности a1,...an...

1
asidorchenko
385 / 211 / 102
Регистрация: 09.04.2012
Сообщений: 635
13.01.2013, 15:41 2
(ceil(t) == floor(t)) это условие того, что полный квадрат.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <math.h>
#include <malloc.h>
 
int check(int m, int* a)
{
 float t; int b, j, len,  start_pos,  kv,  max_len, max_start_pos;
 // start_pos - позиция с которой начинается полный квадрат
 // len - длина последовательности, состоящей из полных квадратов
 // max_len - максимальная длина последовательности, состоящей из полных квадратов
 // start_pos - позиция с которой начинается максимальная последовательность, состоящей из полных квадратов
 len = -1; start_pos = -1; max_len = -1; max_start_pos = -1; kv = 0; 
 for(j =0; j<m;j++)
 {
  t = sqrt(a[j]);
  if ( (ceil(t) == floor(t))  && kv == 0)
  {
    start_pos = j; len = 1; kv = 1;
  }
  else if ((ceil(t) == floor(t)) && kv == 1)
  {
   len++;    
  }
  else if (kv==1)
  {
   kv = 0;
   if (len != 0)  
   {
     if (len >  max_len)
     {
       max_len = len;
       max_start_pos = start_pos;
     }
   }
  }
 } // end for
 //
 if (kv==1)
  {
   kv = 0;
   if (len != 0)  
   {
     if (len >  max_len)
     {
       max_len = len;
       max_start_pos = start_pos;
     }
   }
  }
 printf("%d %d\n", max_len, max_start_pos);
 return max_len;
}
 
int main()
{
 int j;
 int m;
 int* a;
 
 printf("m: ");
 scanf("%d", &m);
 
 // aj, j = 1..m 
 a = (int*) malloc(m*sizeof(int));
 
 printf("a: ");
 for(j=0;j<m;j++) 
  scanf("%d", &(a[j]) );
 
 check(m,a);
 
 free(a); 
 return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 15:41

Получить наибольшую из длин рассматриваемых отрезков
Даны натуральное число n, целые числа а1,...,аn. Рассмотреть отрезки последовательности а1,...,аn...

Получить наибольшую из длин рассматриваемых отрезков
Дано натуральное число n, целые числа a1, ..., an. Рассмотреть отрезки последовательности a1, ...,...

Получить наибольшую из длин рассматриваемых отрезков из массива
Ввести массив целых чисел (размерность любая). Рассмотреть отрезки массива (группы идущих подряд...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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